REST API: Add uniqueItems as a permitted endpoint argument JSON Schema keyword.

Support for the `uniqueItems` keyword was added in [48357], but wasn't included in the list of permitted keywords for `WP_REST_Controller::get_endpoint_args_for_item_schema()`. This prevented the keyword from being automatically supported if specified in a controller's item schema.

Props TimothyBlynJacobs.
Merges [48796] to the 5.5 branch.
Fixes #51021.

git-svn-id: https://develop.svn.wordpress.org/branches/5.5@48807 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2020-08-17 01:40:59 +00:00
parent 267960fc5d
commit 3212a7dffb
3 changed files with 8 additions and 6 deletions

View File

@ -645,6 +645,7 @@ abstract class WP_REST_Controller {
'pattern',
'minItems',
'maxItems',
'uniqueItems',
);
foreach ( $schema_properties as $field_id => $params ) {

View File

@ -265,7 +265,7 @@ class WP_Test_REST_Controller extends WP_Test_REST_TestCase {
$this->assertArrayHasKey( 'items', $args['somearray'] );
foreach ( array( 'minItems', 'maxItems' ) as $property ) {
foreach ( array( 'minItems', 'maxItems', 'uniqueItems' ) as $property ) {
$this->assertArrayHasKey( $property, $args['somearray'] );
}

View File

@ -101,13 +101,14 @@ class WP_REST_Test_Controller extends WP_REST_Controller {
'default' => 'a',
),
'somearray' => array(
'type' => 'array',
'items' => array(
'type' => 'array',
'items' => array(
'type' => 'string',
),
'minItems' => 1,
'maxItems' => 10,
'context' => array( 'view' ),
'minItems' => 1,
'maxItems' => 10,
'uniqueItems' => true,
'context' => array( 'view' ),
),
'someobject' => array(
'type' => 'object',