rspec_api_documentation
rspec_api_documentation copied to clipboard
Curl output removes '_ID' Suffix from headers
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.
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.