2015-08-06 2 views
0

Я развернул тестовый API-интерфейс Grape REST, и я пытаюсь проверить его с помощью интерфейса Swagger.Swagger UI REST URL-адрес суффикса (.json) 404

Проблема заключается в том, что когда Форс UI загружает спецификации API добавляет скобку к суффиксом: http://arcane-shore-2642.herokuapp.com/api/v1/todos(.json)

Это приводит к ошибке 404, так как (.json) суффикс не является действительным.

URL, он называет должен выглядеть следующим образом: http://arcane-shore-2642.herokuapp.com/api/v1/todos

Или это: http://arcane-shore-2642.herokuapp.com/api/v1/todos.json

Как я могу это исправить?

My Swagger UI installation

Более допустимые маршруты:

http://arcane-shore-2642.herokuapp.com/api/v1/todos/1

http://arcane-shore-2642.herokuapp.com/api/v1/items/1

http://arcane-shore-2642.herokuapp.com/api/v1/todos/1/items

http://arcane-shore-2642.herokuapp.com/api/v1/todos/1.json

http://arcane-shore-2642.herokuapp.com/api/v1/items/1.json

http://arcane-shore-2642.herokuapp.com/api/v1/todos/1/items.json

+0

Как вы можете видеть в документе JSON, описывающий API объект '(.json)' добавляется ко всем маршрутам API: HTTP : //arcane-shore-2642.herokuapp.com/api/swagger_doc/todos.json Не могли бы вы предоставить примерные определения ваших маршрутов API? – croeck

+0

Несомненно @croeck, я просто добавил другие маршруты. Я настроил Swagger, потому что, похоже, это простой способ для других разработчиков протестировать мой API. Пожалуйста, дайте мне знать, если вы знаете еще один простой способ документировать и тестировать мой API. Спасибо –

+0

Простите, если это получилось неправильно, но я действительно хотел увидеть ваше определение маршрутов API в вашем Ruby-коде. Возможно, вы также можете показать соответствующие строки 'add_swagger_documentation'. Я предполагаю, что есть что-то смешанное. Какие версии драгоценных камней и пользовательский интерфейс Swagger вы используете? – croeck

ответ

1

Я сталкивался с такой же проблемой сегодня. Это связано с тем, что оригинальные данные спецификации API получены от grape-swagger. У gem есть суффикс «(.json)» (или формат).

{ 
    apiVersion: "0.1", 
    swaggerVersion: "1.2", 
    resourcePath: "/hotels", 
    produces: [ 
    "application/json" 
    ], 
    apis: [ 
    { 
    path: "/hotels.{format}", 
    operations: [ 

    ... 

Там есть установка hide_format к add_swagger_documentation, который может скрыть суффикс формата конфигурации. Однако опция hide_format по-прежнему имеет выпуск в последней выпущенной версии grape-swagger (0.10.1) с последними grape (0.12.0).

Таким образом, нам необходимо указать разработку grape-swagger, а затем установить hide_format.

Gemfile

gem 'grape-swagger', github: "tim-vandecasteele/grape-swagger" 

Корневой API

add_swagger_documentation hide_format: true 
Смежные вопросы