rspec_api_documentation icon indicating copy to clipboard operation
rspec_api_documentation copied to clipboard

Curl output removes '_ID' Suffix from headers

Open jlbyrne opened this issue 6 years ago • 1 comments

I noticed a strange issue when trying to debug a problem in our documentation. Within the generated curl request, one of our headers is showing up as 'X-Api-Partner' instead of the correct 'X-Api-Partner-Id'.

I traced the problem back to rspec_api_documentation/lib/rspec_api_documentation/curl.rb:68. The format_header method is using titleize to capitalize the header name. Titleize unfortunately strips out '_id' suffixes, because it calls humanize. https://github.com/rails/rails/issues/26011

Could you update the format_header method to use something other than titleize? I was thinking something like this would work:

header.gsub(/^HTTP_/, '').split(/ |\_|\-/).map(&:capitalize).join('-')

Thank you.

jlbyrne avatar Oct 30 '17 16:10 jlbyrne

Ouch. I can imagine you banged you head on the wall for a while on that one. Big +1 on not using titleize. I'd even go a step further and just downcase the whole header. This is the approach being taken in the Phoenix/Plug framework which I think makes sense. Then everyone knows headers are just lower-case all the time and it's easy to deal with.

I'm wondering why the HTTP_ prefix is being stripped out here too. If memory serves this header prefix only ever appeared in PHP and ASP Classic.

mroach avatar Aug 21 '18 10:08 mroach