Подтвердить что ты не робот

Как я могу получить несколько ответов от одной конечной точки с разными параметрами?

Мы смотрим на использование 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, но мы хотели бы перейти к новому синтаксису

4b9b3361

Ответ 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}]

Объект резервирования имеет следующие атрибуты:

  • room_number
  • reserved_at - Дата ISO8601, когда вопрос был опубликован.
  • booker_details - объект Booker.

  • Параметры

    • reservation_key (обязательно, текст, 1)... Бронирование Ящик для ключей

Просмотр сведений о резервировании [GET]

  • Ответ 200 (application/json)

    {
        "room_number": 55,
        "reserved_at": "2014-11-11T08:40:51.620Z",
        "booker_details": 
            {
                "name": "Jon",
                "last_name": "Doe",
            }
    }
    

Бронирование [/бронирование/notarealreservation123]

Использование не существующего резервирования (использование notarealreservation123 в подделке) возвращает не найденный