ςετͷΈࠐΈ wAPIͷςετͰRSpecͷrequest specΛॻ͘ wrequest specΛॻ͍ͨΒউखʹJSON SchemaͰόϦσʔγϣϯͯ͠ ΄͍͠ describe 'GET /shipments/:id' do it 'returns 200 OK' do get "/shipments/#{shipment.id}" expect(response.status).to eq 200 end end
request spec࣮ߦ࣌ͷόϦσʔγϣϯ describe 'GET /shipments/:id' do it 'returns 200 OK' do get "/shipments/#{shipment.id}" end end HTTPϦΫΤετΛൃߦͨ͋͠ͱʹϨεϙϯεͷJSONΛCommitteeͰ νΣοΫ assert_schema_conform ͢ΔΑ͏ʹॲཧࠩ͠ସ͑ ։ൃ࣌ʹεΩʔϚʹΑΔνΣοΫΛҙࣝ͠ͳ͍ͰΑ͘ͳͬͨʂ # ActionDispatch::Integration::Sessionʹprepend def process(*args) super *args assert_schema_conform end ˞งғؾͳͷͰৄࡉϒϩάݟͯͶ http://blog.kymmt.com/entry/auto-json-validation-with-committee
ʮεΩʔϚϑΝʔετ։ൃͷ࣮ྫʯͷਅ࣮ w࣮ʮεΩʔϚϑΝʔετ։ൃΔͧʂʂʯͱ͔ݴͬͨ͜ͱͳ͍ wOpenAPIΛಋೖ͠ͳ͕ΒΈΜͳͰ͍ͬͯͨΒͦΕͬΆ͘ ͳ͍ͬͯͨ wRubyKaigi 2017Ͱ֓೦ʹ໊લΛ͚ͭͯΒͬͨײ͡ wref: API Development in 2017 - RubyKaigi 2017 http://rubykaigi.org/2017/presentations/onk.html