I’m developing a REST CodeIgniter Controller and need to POST and PUT to a URL in multiple formats.
The main formats I can think of would be:
- XML
- JSON
- HTML Form data
There will be a response format defined in the URI e.g. /format/xml or /format/csv.
I don’t want to have to define the request format in the URI as well.
I was wondering if anyone has any suggestions on finding out the request format so my script can complete the request.
I’m thinking it may be possible to get this data from the request headers “content-type”?
- “content-type: text/xml” = XML
- “content-type: application/json” = JSON
- “content-type: text/plain” = HTLM Form data **i think!*
Would this method be robust or are there better approaches out there?
Thanks.
The content-type is the correct way to get the information you want.
Just make sure to throw an exception with some feedback and the correct http error code if the client calls it on the wrong format or do not pass the content-type header (you could also assume one content-type as default)
Also, you don’t really have to use format/format_of_the_response . A better way would be to use the header Accept on the same way you use the header content-type