mirror of
https://github.com/ditkrg/rswag.git
synced 2026-01-23 06:16:42 +00:00
parent
0309ff2166
commit
30e4e77df8
@ -38,8 +38,16 @@ module SwaggerRails
|
|||||||
metadata[:produces] = mime_types
|
metadata[:produces] = mime_types
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Accepts parameter objects:
|
||||||
|
# parameter :petId, in: :path, type: :integer, required: true
|
||||||
|
# Or references:
|
||||||
|
# parameter ref: '#/parameters/Pet'
|
||||||
def parameter(name, attributes={})
|
def parameter(name, attributes={})
|
||||||
metadata[:parameters] << { name: name.to_s }.merge(attributes)
|
metadata[:parameters] << if name.respond_to?(:has_key?)
|
||||||
|
{ '$ref': name.delete(:ref) || name.delete('ref') }
|
||||||
|
else
|
||||||
|
{ name: name.to_s }.merge(attributes)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def response(code, description, &block)
|
def response(code, description, &block)
|
||||||
|
|||||||
@ -22,12 +22,23 @@ module SwaggerRails
|
|||||||
|
|
||||||
def params_data_for(test, parameters)
|
def params_data_for(test, parameters)
|
||||||
parameters.map do |parameter|
|
parameters.map do |parameter|
|
||||||
|
parameter = resolve_param_ref(parameter[:$ref]) if parameter.has_key?(:$ref)
|
||||||
|
|
||||||
parameter
|
parameter
|
||||||
.slice(:name, :in)
|
.slice(:name, :in)
|
||||||
.merge(value: test.send(parameter[:name].to_s.underscore))
|
.merge(value: test.send(parameter[:name].to_s.underscore))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def resolve_param_ref ref
|
||||||
|
raise "Invalid parameter reference: #{ref}" unless %r{#/parameters/(?<name>.+)} =~ ref
|
||||||
|
|
||||||
|
parameter = (@swagger_doc[:parameters][name] || @swagger_doc[:parameters][name.to_sym])
|
||||||
|
raise "Unknown parameter reference: #{ref}" unless parameter
|
||||||
|
|
||||||
|
parameter.merge(name: name)
|
||||||
|
end
|
||||||
|
|
||||||
def build_path(path_template, params_data)
|
def build_path(path_template, params_data)
|
||||||
path_params_data = params_data.select { |p| p[:in] == :path }
|
path_params_data = params_data.select { |p| p[:in] == :path }
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user