是否允许将POST请求的参数(正在创建的资源的元素)添加到URL以及正文中?
例如,假设我有一个POST来创建新用户
/user
在请求正文中使用完整的参数集name
,email
等。
但是,我已经看到很多API会接受body或URL参数中的值,如下所示:
/user?name=foo&email=foo@bar.com
第二个选项是否有任何原因,允许URL中的参数是不好的做法?它是否违反了REST的任何组件?
答案 0 :(得分:1)
查询参数的目的是帮助识别请求的目标资源。 POST的主体应该用于指定服务器的指令。
查询组件包含非分层数据,以及
路径组件(第3.3节)中的数据用于识别
URI的方案和命名权限范围内的资源 (如果有的话) - RFC 3986 Section 3.4分层路径组件和可选查询组件服务 作为该来源内潜在目标资源的标识符 服务器的名称空间 - RFC 7230 Section 2.7.1
答案 1 :(得分:0)
Udacity Web Development课程是Steve Huffman(Reddit背后的人),建议仅使用POST请求来更新服务器端数据。史蒂夫强调了为什么使用GET参数可能会有问题。