Skip to content

Commit dd798bb

Browse files
authored
HLAPI Expand endpoint docs
* add rsql query param to spec * add default descriptions for components * add entity, profile and recursive params to spec * add missing params and responses * placeholder support for expanded path responses * placeholders for path params * add placeholders to route docs * add global lang parameter
1 parent 2d1ae37 commit dd798bb

File tree

9 files changed

+606
-68
lines changed

9 files changed

+606
-68
lines changed

src/Api/HL/Controller/AbstractController.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,38 @@ abstract class AbstractController
7272
public const CRUD_ACTION_RESTORE = 'restore';
7373
public const CRUD_ACTION_LIST = 'list';
7474

75+
protected const PARAMETER_RSQL_FILTER = [
76+
'name' => 'filter',
77+
'description' => 'RSQL query string',
78+
'location' => 'query',
79+
'schema' => [
80+
'type' => Doc\Schema::TYPE_STRING,
81+
]
82+
];
83+
84+
protected const PARAMETER_START = [
85+
'name' => 'start',
86+
'description' => 'The first item to return',
87+
'location' => 'query',
88+
'schema' => [
89+
'type' => Doc\Schema::TYPE_INTEGER,
90+
'format' => Doc\Schema::FORMAT_INTEGER_INT64,
91+
'minimum' => 0,
92+
'default' => 0,
93+
]
94+
];
95+
96+
protected const PARAMETER_LIMIT = [
97+
'name' => 'limit',
98+
'description' => 'The maximum number of items to return',
99+
'location' => 'query',
100+
'schema' => [
101+
'type' => Doc\Schema::TYPE_INTEGER,
102+
'format' => Doc\Schema::FORMAT_INTEGER_INT64,
103+
'minimum' => 0,
104+
]
105+
];
106+
75107
/**
76108
* @return array<string, Doc\Schema>
77109
*/

src/Api/HL/Controller/AdministrationController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ public static function getRawKnownSchemas(): array
330330
#[Route(path: '/User', methods: ['GET'], middlewares: [ResultFormatterMiddleware::class])]
331331
#[Doc\Route(
332332
description: 'List or search users',
333+
parameters: [self::PARAMETER_RSQL_FILTER, self::PARAMETER_START, self::PARAMETER_LIMIT],
333334
responses: [
334335
['schema' => 'User[]']
335336
]
@@ -342,6 +343,7 @@ public function searchUsers(Request $request): Response
342343
#[Route(path: '/Group', methods: ['GET'], middlewares: [ResultFormatterMiddleware::class])]
343344
#[Doc\Route(
344345
description: 'List or search groups',
346+
parameters: [self::PARAMETER_RSQL_FILTER, self::PARAMETER_START, self::PARAMETER_LIMIT],
345347
responses: [
346348
['schema' => 'Group[]']
347349
]
@@ -354,6 +356,7 @@ public function searchGroups(Request $request): Response
354356
#[Route(path: '/Entity', methods: ['GET'], middlewares: [ResultFormatterMiddleware::class])]
355357
#[Doc\Route(
356358
description: 'List or search entities',
359+
parameters: [self::PARAMETER_RSQL_FILTER, self::PARAMETER_START, self::PARAMETER_LIMIT],
357360
responses: [
358361
['schema' => 'Entity[]']
359362
]
@@ -366,6 +369,7 @@ public function searchEntities(Request $request): Response
366369
#[Route(path: '/Profile', methods: ['GET'], middlewares: [ResultFormatterMiddleware::class])]
367370
#[Doc\Route(
368371
description: 'List or search profiles',
372+
parameters: [self::PARAMETER_RSQL_FILTER, self::PARAMETER_START, self::PARAMETER_LIMIT],
369373
responses: [
370374
['schema' => 'Profile[]']
371375
]
@@ -546,7 +550,6 @@ public function getMyPicture(Request $request): Response
546550
[
547551
'name' => '_',
548552
'location' => Doc\Parameter::LOCATION_BODY,
549-
'type' => Doc\Schema::TYPE_OBJECT,
550553
'schema' => 'User',
551554
]
552555
])]
@@ -678,7 +681,6 @@ public function deleteUserByUsername(Request $request): Response
678681
[
679682
'name' => '_',
680683
'location' => Doc\Parameter::LOCATION_BODY,
681-
'type' => Doc\Schema::TYPE_OBJECT,
682684
'schema' => 'Group',
683685
]
684686
])]
@@ -731,7 +733,6 @@ public function deleteGroupByID(Request $request): Response
731733
[
732734
'name' => '_',
733735
'location' => Doc\Parameter::LOCATION_BODY,
734-
'type' => Doc\Schema::TYPE_OBJECT,
735736
'schema' => 'Entity',
736737
]
737738
])]
@@ -784,7 +785,6 @@ public function deleteEntityByID(Request $request): Response
784785
[
785786
'name' => '_',
786787
'location' => Doc\Parameter::LOCATION_BODY,
787-
'type' => Doc\Schema::TYPE_OBJECT,
788788
'schema' => 'Profile',
789789
]
790790
])]

0 commit comments

Comments
 (0)