mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-01 15:50:09 +00:00
REST API: Add support for CURIEs.
CURIEs are Compact URIs, which provide a more usable way to use custom relations in the API. The `wp` CURIE is registered by default for `https://api.w.org/` URI relations. Fixes #34729. Props joehoyle. git-svn-id: https://develop.svn.wordpress.org/trunk@36533 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -256,4 +256,45 @@ class WP_REST_Response extends WP_HTTP_Response {
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the CURIEs (compact URIs) used for relations.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_curies() {
|
||||
$curies = array(
|
||||
array(
|
||||
'name' => 'wp',
|
||||
'href' => 'https://api.w.org/{rel}',
|
||||
'templated' => true,
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Filter extra CURIEs available on API responses.
|
||||
*
|
||||
* CURIEs allow a shortened version of URI relations. This allows a more
|
||||
* usable form for custom relations than using the full URI. These work
|
||||
* similarly to how XML namespaces work.
|
||||
*
|
||||
* Registered CURIES need to specify a name and URI template. This will
|
||||
* automatically transform URI relations into their shortened version.
|
||||
* The shortened relation follows the format `{name}:{rel}`. `{rel}` in
|
||||
* the URI template will be replaced with the `{rel}` part of the
|
||||
* shortened relation.
|
||||
*
|
||||
* For example, a CURIE with name `example` and URI template
|
||||
* `http://w.org/{rel}` would transform a `http://w.org/term` relation
|
||||
* into `example:term`.
|
||||
*
|
||||
* Well-behaved clients should expand and normalise these back to their
|
||||
* full URI relation, however some naive clients may not resolve these
|
||||
* correctly, so adding new CURIEs may break backwards compatibility.
|
||||
*
|
||||
* @param array $additional Additional CURIEs to register with the API.
|
||||
*/
|
||||
$additional = apply_filters( 'rest_response_link_curies', array() );
|
||||
return array_merge( $curies, $additional );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user