我正在开发一个REST CodeIgniter控制器,需要POST和PUT到多种格式的URL。
我能想到的主要格式是:
在URI中定义了响应格式,例如/ format / xml或/ format / csv。 我也不想在URI中定义请求格式。
我想知道是否有人对查找请求格式有任何建议,以便我的脚本可以完成请求。
我认为可以从请求标题“content-type”中获取此数据?
这种方法会很强大还是有更好的方法呢?
感谢。
答案 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服务器库,可能会帮助你一点点。