确定REST POST / PUT请求格式

时间:2009-12-09 13:29:03

标签: php rest codeigniter post

我正在开发一个REST CodeIgniter控制器,需要POST和PUT到多种格式的URL。

我能想到的主要格式是:

  • XML
  • JS​​ON
  • HTML表单数据

在URI中定义了响应格式,例如/ format / xml或/ format / csv。 我也不想在URI中定义请求格式。

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

我认为可以从请求标题“content-type”中获取此数据?

  • “content-type:text / xml”= XML
  • “content-type:application / json”= JSON
  • “content-type:text / plain”= HTLM表单数据**我认为!*

这种方法会很强大还是有更好的方法呢?

感谢。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

如果客户端以错误的格式调用它或者不传递内容类型标头(您也可以假设一个内容类型为默认值),请确保抛出异常并提供一些反馈和正确的http错误代码< / p>

此外,您实际上不必使用format / format_of_the_response。更好的方法是使用标题 Accept ,方法与使用标题内容类型相同

答案 2 :(得分:1)

我知道这已经得到了解答,但是Phil Sturgeon编写了一个用于codeigniter的REST客户端和REST服务器库,可能会帮助你一点点。

http://github.com/philsturgeon/codeigniter-restclient

相关问题