add header type schema support for openapi3

This commit is contained in:
Greg Myers 2020-03-21 23:15:56 +00:00
parent a25307dc69
commit da230a4f3e
4 changed files with 11 additions and 24 deletions

View File

@ -157,12 +157,6 @@ module Rswag
def header(name, attributes)
metadata[:response][:headers] ||= {}
## OA3
# if attributes[:type] && attributes[:schema].nil?
# attributes[:schema] = { type: attributes[:type] }
# attributes.delete(:type)
# end
metadata[:response][:headers][name] = attributes
end

View File

@ -127,8 +127,9 @@ module Rswag
def upgrade_request_type!(metadata)
operation_nodes = metadata[:operation][:parameters] || []
path_nodes = metadata[:path_item][:parameters] || []
header_node = metadata[:response][:headers] ||= {}
(operation_nodes + path_nodes).each do |node|
(operation_nodes + path_nodes + [header_node]).each do |node|
if node && node[:type] && node[:schema].nil?
node[:schema] = { type: node[:type] }
node.delete(:type)

View File

@ -27,20 +27,6 @@ module Rswag
}
}
end
## OA3
# let(:swagger_doc) do
# {
# components: {
# securitySchemes: {
# api_key: {
# type: :apiKey,
# name: 'api_key',
# in: :query
# }
# }
# }
# }
# end
let(:metadata) do
{

View File

@ -28,7 +28,7 @@ module Rswag
{
path_item: { template: '/blogs', parameters: [{ type: :string }] },
operation: { verb: :post, summary: 'Creates a blog', parameters: [{ type: :string }] },
response: { code: '201', description: 'blog created' },
response: { code: '201', description: 'blog created', headers: { type: :string } },
document: document
}
end
@ -55,7 +55,10 @@ module Rswag
parameters: [{ type: :string }],
summary: 'Creates a blog',
responses: {
'201' => { description: 'blog created' }
'201' => {
description: 'blog created',
headers: { type: :string }
}
}
}
}
@ -78,7 +81,10 @@ module Rswag
parameters: [{ schema: { type: :string } }],
summary: 'Creates a blog',
responses: {
'201' => { description: 'blog created' }
'201' => {
description: 'blog created',
headers: { schema: { type: :string } }
}
}
}
}