In the handbook page on Controller Classes the example code has an error in the register_rest_route function calls.
register_rest_route( $this->namespace, '/' . $this->resource_name, array(
// Here we register the readable endpoint for collections.
array(
'methods' => 'GET',
'callback' => array( $this, 'get_items' ),
'permission_callback' => array( $this, 'get_items_permissions_check' ),
),
// Register our schema callback.
'schema' => array( $this, 'get_item_schema' ),
) );
This example code was likely adapted from real world implementations in WordPress Core, for example the Posts Controller
register_rest_route(
$this->namespace,
'/' . $this->rest_base,
array(
array(
'methods' => WP_REST_Server::READABLE,
'callback' => array( $this, 'get_items' ),
'permission_callback' => array( $this, 'get_items_permissions_check' ),
'args' => $this->get_collection_params(),
),
array(
'methods' => WP_REST_Server::CREATABLE,
'callback' => array( $this, 'create_item' ),
'permission_callback' => array( $this, 'create_item_permissions_check' ),
'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
),
'allow_batch' => $this->allow_batch,
'schema' => array( $this, 'get_public_item_schema' ),
)
);
However, in this case, the reason the schema argument appears "outside" of the endpoint arrays is because multiple endpoint arrays are being registered for this route.
In the handbook page on Controller Classes the example code has an error in the register_rest_route function calls.
This example code was likely adapted from real world implementations in WordPress Core, for example the Posts Controller
However, in this case, the reason the schema argument appears "outside" of the endpoint arrays is because multiple endpoint arrays are being registered for this route.