Php 确定REST POST/PUT请求格式

Php 确定REST POST/PUT请求格式,php,rest,codeigniter,post,Php,Rest,Codeigniter,Post,我正在开发一个REST CodeIgniter控制器,需要以多种格式发布并放入URL 我能想到的主要形式是: XML JSON HTML表单数据 URI中将定义响应格式,例如/format/xml或/format/csv。 我也不想在URI中定义请求格式 我想知道是否有人对查找请求格式有任何建议,以便我的脚本可以完成请求 我认为从请求头“内容类型”中获取这些数据是可能的 “内容类型:text/xml”=xml “内容类型:应用程序/json”=json “内容类型:文本/普通”=HTLM表

我正在开发一个REST CodeIgniter控制器,需要以多种格式发布并放入URL

我能想到的主要形式是:

  • XML
  • JSON
  • HTML表单数据
URI中将定义响应格式,例如/format/xml或/format/csv。 我也不想在URI中定义请求格式

我想知道是否有人对查找请求格式有任何建议,以便我的脚本可以完成请求

我认为从请求头“内容类型”中获取这些数据是可能的

  • “内容类型:text/xml”=xml
  • “内容类型:应用程序/json”=json
  • “内容类型:文本/普通”=HTLM表单数据**我想*
这种方法是稳健的还是有更好的方法


谢谢。

只要您知道您的REST客户端将遵循您的内容类型规则,该方法就是健壮的。如果您控制了客户端,那么这很好。如果您不控制客户端,那么传入异常(或无)内容类型时调用失败的可接受程度如何


哦,作为参考,HTML表单数据的内容类型为“application/x-www-form-urlencoded”

,只要您知道您的REST客户端将遵循您的内容类型规则,该方法就是健壮的。如果您控制了客户端,那么这很好。如果您不控制客户端,那么传入异常(或无)内容类型时调用失败的可接受程度如何


哦,作为参考,HTML表单数据的内容类型为“application/x-www-form-urlencoded”

该内容类型是获取所需信息的正确方法

如果客户端以错误的格式调用异常或未传递内容类型头(您也可以假定一种内容类型为默认类型),请确保抛出带有一些反馈和正确http错误代码的异常


此外,您实际上不必使用\u响应的format/format\u。更好的方法是使用header Accept,方法与使用header内容类型相同。内容类型是获取所需信息的正确方法

如果客户端以错误的格式调用异常或未传递内容类型头(您也可以假定一种内容类型为默认类型),请确保抛出带有一些反馈和正确http错误代码的异常


此外,您实际上不必使用\u响应的format/format\u。更好的方法是使用header Accept,就像使用header内容类型一样

我知道这已经得到了回答,但是Phil Sturgeon为codeigniter编写了一个REST客户端和REST服务器库,这可能会对您有所帮助


我知道这个问题已经得到了回答,但是Phil Sturgeon为codeigniter编写了一个REST客户端和REST服务器库,可能会对您有所帮助


HTML表单数据:HTML4.01规范说,它应该作为
application/x-www-form-urlencoded
提交:HTML表单数据:HTML4.01规范说,它应该作为
application/x-www-form-urlencoded
提交:谢谢,我想我也会考虑使用accept头!希望我能从jquery表单中设置标题,肯定更优雅谢谢,我想我也会考虑使用accept标题!希望我能从jquery表单中设置标题,绝对更优雅谢谢,谁他妈的想出了那个漂亮的字符串:-)谢谢,谁他妈的想出了那个漂亮的字符串:-)