So I understand for the most part how the wp rest controller works, what it is doing and why it is the best way to do it. The trouble I am having is wrapping my head around the regular expressions in the endpoint URL for the function register_rest_route.
Regular expressions are what they are but I was wondering if someone could break it down for me in this context.
Some example code
register_rest_route( $this->namespace, '/' . $this->resource_name . '/(?P<id>[\d]+)', array(
// Notice how we are registering multiple endpoints the 'schema' equates to an OPTIONS request.
array(
'methods' => 'GET',
'callback' => array( $this, 'get_item' ),
'permission_callback' => array( $this, 'get_item_permissions_check' ),
),
// Register our schema callback.
'schema' => array( $this, 'get_item_schema' ),
) );
So the (?P<id>[\d]+) confuses me a bit I understand it means that the parameter of id is required but what if I wanted multiple parameters and what if wanted to have a route that was something like /vendor/v1/geolocate/{param}/{param} or /vender/v1/?id={param}&address={param}
([\d]+)means "a decimal part at least 1 time" and adding?P<id>give the name "id" to this argument instead of just calling im "1" (as first argument). then you need something like/(?P<id>[\d]+)/(?P<address>[^/]+)/users/market=(?P<market>[a-zA-Z0-9-]+)/lat=(?P<lat>[a-z0-9 .\-]+)/long=(?P<long>[a-z0-9 .\-]+)Would this be called like/users/market={param}/lat={param}/long={param}