根据所使用的基本身份验证,如果一个url接受了不同的有效负载,它被认为是不好的设计吗?例如:
http://localhost/userA PUT by userA is allowed up pass XML_A but
http://localhost/userA PUT by adminA is allowed up pass XML_B which is XML_A plus more.
在其他方面,它是相同的资源,但可以更新的内容是根据提供的凭据确定的。
我见过有关返回数据的对话,但关于请求有效负载没有太多。 (不确定它是否会被视为不同)谢谢
更新
根据Darrel Miller的信息,以下是更好的设计吗?
GET /{Username} readonly resource returns different payload based off of rights
GET /{Username}/UpdInfo returns only updatable info (subset of GET /{Username})
PUT /{Username}/UpdInfo updates info 1 to 1 from the GET /{Username}/Info
GET /admin/{Username}/UpdInfo returns updatable info (larger subset of GET /{Username})
PUT /admin/{Username}/UpdInfo updates info 1 to 1 from the GET /admin/{Username}/Info
答案 0 :(得分:0)
我看到的问题是PUT方法替换了目标资源的全部内容。例如,如果发生以下序列,
PUT /UserA with XML_B
PUT /UserA with XML_A
GET /UserA returns XML_A
UserA不再包含XML_B中包含的额外信息。
它认为您最好将两组不同的信息表示为不同的资源:
GET /admin/UserA
PUT /admin/UserA with XML_B
GET /UserA
PUT /UserA with XML_A