2016-08-13 3 views
4

У меня есть вызов API, который отвечает 200 OK и возвращает HTML. Я хотел бы добавить это в свою документацию API (тем более, что я проверяю ее с помощью dredd и, если я не предоставил ей ожидаемое тело ответа, тест не прошел). Как я сделал бы это в Swagger?Как представить пример для тела ответа типа content: text/html в Swagger (для проверки с dredd)

--- Подробнее --- Мой ответ на вызов API 200 OK и с одной линии реакции организма:

<html><body>You are being <a href="https://my.domain.com/users/sign_in">redirected</a>.</body></html>

Я могу легко определить тело ответа в Blueprint в следующая форма:

+ Response 302 (text/html; charset=utf-8) 

    + Body 

     `<html><body>You are being <a href="https://my.domain.com/users/sign_in">redirected</a>.</body></html>` 

Но я не уверен, как это сделать в Swagger. Почти все примеры, которые я могу найти, - это ответы приложения/json (понятно), и у меня возникают проблемы , угадывая правильный синтаксис такого ответа.

Соответствующий текст развязности в моем документе, это (до сих пор без указания тела ответа, так и с пустым телом Дредд терпит неудачу, потому что тело ответа должно быть <html><body>You are being <a href="https://my.domain.com/users/sign_in">redirected</a>.</body></html>):

# this is my API spec in YAML 
swagger: '2.0' 
info: 
    title: My API (Swagger) 
    description: blablabla 
    version: "1.0.0" 
# the domain of the service 
host: my.domain.com 
# array of all schemes that your API supports 
schemes: 
    - https 
# will be prefixed to all paths 
basePath:/
produces: 
    - application/json; charset=utf-8 
paths: 
    /users/password: 
    post: 
     summary: Password Reset 
     description: | 
     Handles Reset password for existing user. 
     consumes: 
     - application/x-www-form-urlencoded 
     produces: 
     - text/html; charset=utf-8 
     parameters: 
     - name: "user[email]" 
      description: email 
      in: formData 
      required: true 
      type: string 
      default: "[email protected]" 
     tags: 
     - Reset Password 
     responses: 
     200: 
      description: Success 

Пожалуйста прокомментируйте если вы есть предложения по этому поводу. Благодаря!

ответ

6

Выяснил это. объект ответа имеет поле под названием «примеры», которое позволяет показать примеры вашего ответа API.

Синтаксис четко указан в спецификации и в основном говорит, что вам нужно идентифицировать MIME-тип для ответа на пример, в моем случае text/html и значение - это фактический текст.

так, как это:

responses: 
     200: 
     description: success and returns some html text 
     examples: 
      text/html: 
      <html><body>Your HTML text</body></html> 

Вот так. Теперь, знает ли дредд, чтобы взять это значение и сравнить, это еще одна история. их документы указывают, что любой ответ, отличный от JSON, проверяется как обычный текст, поэтому должен работать.

Надеюсь, это помогло.

 Смежные вопросы

  • Нет связанных вопросов^_^