Как я могу получить несколько ответов от одной конечной точки с разными параметрами?
Мы смотрим на использование API Blueprint. Бывают случаи, когда мы хотели бы, чтобы один запрос возвращал правильный ответ и другой запрос, чтобы вернуть ответ "error", такой как 400 bad request
, чтобы другие разработчики могли работать против mock API на apiary.io с обоими типами ответов и обрабатывайте его в своих приложениях.
Я создал совершенно произвольный пример ниже,
## Thing [/thing/{id}]
Gets a thing but the thing id must be a prime number!
+ Parameters
+ id (string) ... ID of the thing, a prime number!
+ Model (application/json)
The thing itself.
+ Body
{
"description": "It is green"
}
### Retrieve a Single Gist [GET]
+ Response 200
[Gist][]
Теперь как-то я хотел бы добавить ответ для /thing/40
+ Response 400
{ "error" : "Invalid request" }
Но я не уверен, как это сделать с помощью API Blueprint. Это было осуществимо в стиле "старый" на apiary.io, но мы хотели бы перейти к новому синтаксису
Ответы
Ответ 1
Чтобы документировать несколько ответов, просто добавьте их после Response 200
следующим образом:
## Thing [/thing/{id}]
Gets a thing but the thing id must be a prime number!
+ Parameters
+ id (string) ... ID of the thing, a prime number!
+ Model (application/json)
The thing itself.
+ Body
{
"description": "It is green"
}
### Retrieve a Single Gist [GET]
+ Response 200
[Thing][]
+ Response 400 (application/json)
{ "error" : "Invalid request" }
Обратите внимание, что в настоящее время нет специального синтаксиса для обсуждения условий (когда возвращается этот ответ я s). Вы можете обсудить это так или иначе, как вам нравится, например:
+ Response 400 (application/json)
This response is returned when no `Thing` for given `id` exists.
+ Body
Если вы используете макет Apiary, помните, что первый ответ указан по умолчанию, если вы не указали иначе, используя предпочитаете заголовок HTTP.
Ответ 2
Вы можете использовать шаблоны и указать конкретный прецедент после общего ответа для вашего ресурса, см. пример:
Бронирование [/бронирование/{бронирование_key}]
Объект резервирования имеет следующие атрибуты:
Просмотр сведений о резервировании [GET]
-
Ответ 200 (application/json)
{
"room_number": 55,
"reserved_at": "2014-11-11T08:40:51.620Z",
"booker_details":
{
"name": "Jon",
"last_name": "Doe",
}
}
Бронирование [/бронирование/notarealreservation123]
Использование не существующего резервирования (использование notarealreservation123
в подделке) возвращает не найденный