mirror of
https://github.com/ditkrg/rswag.git
synced 2026-01-25 15:22:56 +00:00
Add a macro for complexes multiparts
This will allow to describe multipart in a short way, like JSON payload:
Before:
put 'Creates a blog with thumbnail' do
consumes 'multipart/form-data'
parameter name: :title, in: :formData, type: :string, required: true
parameter name: :content, in: :formData, type: :string, required: true
parameter name: :file, in: :formData, type: :file, required: true
let(:blog) { FactoryBot.build(:blog) }
let(:title) { blog.title }
let(:content) { blog.content }
let(:file) { blog.file }
...
end
After:
put 'Creates a blog with thumbnail' do
consumes 'multipart/form-data'
parameter name: :blog, in: :formData, schema: { '$ref' => '#/definitions/blog' }
let(:blog) { FactoryBot.attributes_for(:blog) }
...
end
Your mileage may vary but you can always choose the best option.
This commit is contained in:
@@ -178,6 +178,20 @@ module Rswag
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'smart form payload' do
|
||||
before do
|
||||
metadata[:operation][:consumes] = ['multipart/form-data']
|
||||
metadata[:operation][:parameters] = [{ name: 'comment', in: :formData, schema: { type: 'object' } }]
|
||||
allow(example).to receive(:comment).and_return(text: 'Some comment')
|
||||
end
|
||||
|
||||
it 'sets payload to hash of names and example values' do
|
||||
expect(request[:payload]).to eq(
|
||||
:text => 'Some comment'
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'produces content' do
|
||||
|
||||
Reference in New Issue
Block a user