Skip to content

Open api: If a path parameter is documented, the engine add a query parameter instead #402

@SrMouraSilva

Description

@SrMouraSilva

Description

In open api, the engine assumes that the doc is about a query parameter, not a path parameter

acceptance_helper.rb

require 'rails_helper'  
require 'rspec_api_documentation'  
require 'rspec_api_documentation/dsl'

# https://github.com/zipmark/rspec_api_documentation#configuration-options
RspecApiDocumentation.configure do |config|
  config.docs_dir = Rails.root.join("app", "assets", "json")
  config.configurations_dir = Rails.root.join("spec")

  config.format = :open_api

  config.request_body_formatter = :json

  config.request_headers_to_include = ['Accept']
  config.response_headers_to_include = ['Content-Type', 'X-STI-Api-Version', 'X-STI-Api-Status']

  config.io_docs_protocol = "https"
end

componente_curricular_spec.rb

resource "Componentes curriculares" do
  header 'Accept', 'application/vnd.sti.api; version=V20181201'
  header 'Content-Type', 'application/json'

  get '/componentes-curriculares/:codigo' do
    route_summary "Obter dados de um componente curricular"

    parameter :codigo, 'Código do Componente curricular', type: :string, required: true, with_example: true

    context '200' do
      let(:codigo) { 'RM0001' }

      example_request 'Ok' do
        expect(status).to be 200
        expect(response_status).to be 200

        expect(response_body).not_to be_empty
      end
    end
end

Output

image

"parameters": [
          {
            "name": "codigo",
            "in": "path",
            "description": "",
            "required": true,
            "type": "string"
          },
          {
            "name": "codigo",
            "in": "query",
            "description": "Código do Componente curricular\nEg, `RM0001`",
            "required": true,
            "type": "string"
          }
        ],

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions