Skip to content

Commit 7041806

Browse files
nikosmichasiNecas
authored andcommitted
Swagger export: Ability to include default values in headers
1 parent b06d781 commit 7041806

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

lib/apipie/swagger_generator.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -651,14 +651,15 @@ def swagger_params_array_for_method(method, path)
651651

652652
def add_headers_from_hash(swagger_params_array, headers)
653653
swagger_headers = headers.map do |header|
654-
{
654+
header_hash = {
655655
name: header[:name],
656656
in: 'header',
657657
required: header[:options][:required],
658658
description: header[:description],
659659
type: header[:options][:type] || 'string'
660660
}
661-
661+
header_hash[:default] = header[:options][:default] if header[:options][:default]
662+
header_hash
662663
end
663664
swagger_params_array.push(*swagger_headers)
664665
end

spec/controllers/users_controller_spec.rb

+12
Original file line numberDiff line numberDiff line change
@@ -488,12 +488,24 @@ def reload_controllers
488488
}
489489
end
490490

491+
let(:expected_header_with_default) do
492+
{
493+
name: :HeaderNameWithDefaultValue,
494+
description: 'Header with default value',
495+
options: {
496+
required: true,
497+
default: 'default value'
498+
}
499+
}
500+
end
501+
491502
it 'contains all headers description in method doc' do
492503
headers = Apipie.get_method_description(UsersController, :action_with_headers).headers
493504
expect(headers).to be_an(Array)
494505

495506
compare_hashes headers[0], expected_required_header
496507
compare_hashes headers[1], expected_optional_header
508+
compare_hashes headers[2], expected_header_with_default
497509
end
498510
end
499511

spec/dummy/app/controllers/users_controller.rb

+1
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ def create_route
292292
api :GET, '/users/action_with_headers'
293293
header :RequredHeaderName, 'Required header description', required: true
294294
header :OptionalHeaderName, 'Optional header description', required: false, type: 'string'
295+
header :HeaderNameWithDefaultValue, 'Header with default value', required: true, default: 'default value'
295296
def action_with_headers
296297
end
297298
end

0 commit comments

Comments
 (0)