Параметризация структуры данных в API-проекте
Я смутно имею следующий документ:
# Group Cats
## Get ALl The Cats [GET /api/v1/cats{?page%5bsize%5d,page%5bnumber%5d,sort,filter}]
+ Parameters
+ page%5bsize%5d: 10 (number, optional) - Maximum number of resources in a single paginated response.
+ page%5bnumber%5d: 2 (number, optional) - Page number to fetchedfor the paginated response.
+ Request Success Reports (application/json)
+ Response 200 (application/json)
+ Attributes
+ data (array[Cat], required, fixed-type)
+ (Cat)
+ meta (Metadata, optional)
+ links (Links)
## Data Structures
### Links
+ self: `/api/v1/resources?page[number]=2&page[size]=10` (string, required)
+ first: `/api/v1/resources?page[number]=1&page[size]=10` (string, required)
+ last: `/api/v1/resources?page[number]=3&page[size]=10` (string, required)
+ prev: `/api/v1/resources?page[number]=1&page[size]=10` (string, required)
+ next: `/api/v1/resources?page[number]=3&page[size]=10` (string, optional)
Я рефакторил ссылки в своих собственных структурах данных. Все это работает хорошо. Что я хочу сделать, это сделать часть URL-адресов в Links
динамический, так что resources
будет заменено тем, что я передам. Так что-то вроде:
### Links (something)
+ self: `/api/v1/{something}?page[number]=2&page[size]=10` (string, required)
+ first: `/api/v1/{something}?page[number]=1&page[size]=10` (string, required)
+ last: `/api/v1/{something}?page[number]=3&page[size]=10` (string, required)
+ prev: `/api/v1/{something}?page[number]=1&page[size]=10` (string, required)
+ next: `/api/v1/{something}?page[number]=3&page[size]=10` (string, optional)
И тогда я мог бы сделать что-то вроде этого:
+ Response 200 (application/json)
+ Attributes
+ data (array[Cat], required, fixed-type)
+ (Cat)
+ meta (Metadata, optional)
+ links (Links `cats`)
замена resources
с cats
,