grape-swagger-rails icon indicating copy to clipboard operation
grape-swagger-rails copied to clipboard

Default content-type for generated PUT request

Open pabuisson opened this issue 7 years ago • 4 comments

Hi guys,

I'm using grape-swagger-rails (0.3.0) to generate the documentation for a JSON API. I have an issue with all the actions expecting a payload in JSON format : indeed, the documentation generates a request body with the application/x-www-form-urlencoded format, and my API only handles application/json format.

capture d ecran 2017-04-03 a 17 49 43

Therefore, all the "Try it out" actions on the documentation for POST/PUT/PATCH requests are non-functional.

I've tried to manually add a Content-Type header in the GrapeSwaggerRails initialization section, but it doesn't seem to be taken into account :

GrapeSwaggerRails.options.headers[ 'Content-Type' ] = 'application/json'

Am I missing something in the configuration of my endpoints / of grape-swagger-rails here ? I've found nothing around here in the documentation.

EDIT: actually it looks like the payload is correctly understood by my API endpoint on POST and PATCH, but not on PUT requests... in case it helps. Any clues ? When I click "Try it out", I get this in the console for a PUT request only :

capture d ecran 2017-04-03 a 18 02 25

pabuisson avatar Apr 03 '17 15:04 pabuisson

I am also seeing the same issue as documented here. @pabuisson did you ever find a solution for this?

anelson425 avatar Oct 16 '17 16:10 anelson425

@anelson425 well to be honest, we've kind of reduced our usage of grape-swagger so it's not that big a deal for us anymore. And re-reading this issue, I'm thinking that it must be coming from the underlying swagger-ui rather than grape-swagger-rails itself which mostly seems to be a wrapper around swagger. I found several issues in swagger-ui github issues, maybe there's more stuff over there about this problem.

pabuisson avatar Oct 17 '17 09:10 pabuisson

@pabuisson I found out yesterday that setting the param_type to 'body' in the documentation for the parameter seemed to fix my issue.

requires :body, documentation: { type: Entities::MyEntity, is_array: true, param_type: 'body' }

anelson425 avatar Oct 17 '17 14:10 anelson425

@anelson425, thank you so much, i was making a doc for my API and wasn't able to find a workaround for this. This fixed my issue!

h4ckbarth avatar Sep 26 '19 16:09 h4ckbarth