#ruby #swagger #grape-entity
#рубин #развязность #виноград-сущность
Вопрос:
У меня есть конечная точка с этим кодом:
resource :templates do desc 'Add a template for documents' do success Entities::Template.add_success failure Entities::Template.add_fail end
Объект шаблона с этим кодом (среди прочего):
def self.add_success { examples: { 'application/json' =gt; Entities::Response.parse(201, 'succesful added', '{template_id: 1}') } } end def self.add_fail [Entities::Response.parse(422, 'ALREADY_REGISTERED_TEMPLATE')] end
и объект ответа с этим кодом:
def self.parse(code, message, data = '') case code when 200...300 represent({ code: code, status: 'success', data: data }).as_json when 400...600 represent({ code: code, status: 'fail', message: message }).as_json endo end
Автоматически сгенерированный документ Swagger содержит поле «схема» для ответов на отказ, как вы могли видеть:
"responses": { "201": { "description": "Add a template for documents", "schema": { "$ref": "#/definitions/Template" }, "examples": { "application/json": { "code": 201, "status": "success", "data": "{template_id: 1234}" } } }, "422": { "description": "ALREADY_REGISTERED_TEMPLATE", "schema": { "$ref": "#/definitions/Template" } } },
Я упростил информацию об ответе 422, чтобы удалить поле «схема», но оно продолжает появляться. Как я могу удалить его динамически.