Я пытаюсь высмеять API с комбинацией Api Blueprint и Drakov. Тем не менее, для одной конкретной конечной точки я не знаю заранее, какой будет полезная нагрузка запроса. См. Приведенный ниже код.APIB - всегда отвечает на запрос POST, независимо от полезной нагрузки запроса.
# Group Stuff
Description about stuff.
## Main Stuff Resource [stuff/{userId}/response/{responseId}]
+ Parameters
+ userId: specialUser (string, required) - ID of user
+ responseId: 0f9d78ee-005056ad6f10 (string, required) - ID for a particular response.
### Submit Survey Form [POST]
+ Attributes
+ attribute1 (array[object]) - Description for attribute 1
+ attribute2 (array[object]) - Description for attribute 1
+ Request (application/json)
{attribute1:[],attribute2[]}
+ Response 201 (text/plain; charset=utf8)
+ Headers
X-XSS-Protection: 0
Vary:Origin,Accept-Encoding
Access-Control-Allow-Credentials:true
+ Body
http://fakeurl.com
Приведенный выше код работает, но только тогда, когда полезная нагрузка запроса точно{attribute1:[],attribute2:[]}
. Даже разный whitespacing кажется, кончик его вверх, возвращая 404
к пользователю и журнал ошибок из Drakov: [WARNING] JSON body could not be parsed. Using body as is.
Я попытался удалить раздел Attributes
, удалив раздел Request
, удаляя пример JSON из раздела Request
, удаляя все, кроме раздела Response
, а также используя раздел Schema
. Ни один из них, похоже, не работает, и я не могу найти упоминания об этом в документах API Blueprint.
Как я могу всегда вернуться, что ответ на запрос POST в этой конечной точке, учитывая, что я не знаю, что формат полезной нагрузки запроса или содержимое attribute1
и attribute2
будет?
Это похоже на работу. Кажется, это комбинация использования раздела «Запросы», а также цитаты вокруг атрибутов, которые приводят к ее работе. +1 – LanceLafontaine