我有一个包含10个cols的db产品表,我希望通过REST Web API使表可访问。 我有4种类型的用户可以对不同的不相交的字段集(cols)进行评估。 例如:
我的API的正确结构是什么? 在我看来,这是一个使用的例子:
用户A想要一个产品:
POST: http://my.api.address/v1/products
{key:'p1234', c1:'blue', c2:33}
用户B设置自己的道具:
PUT: http://my.api.address/v1/products/p1234
{c3:'big', c4:21, c5:true}
用户C设置自己的道具:
PUT: http://my.api.address/v1/products/p1234
{c6:'sdajkhfashdfjj87', c7:'good!', c8:33}
用户D设置自己的道具:
PUT: http://my.api.address/v1/products/p1234
{c9:true}
第一个问题:这是构建API的正确方法吗?
第二个问题:最后一个道具c9是已发布的属性'。用户D看起来很自然地设置了一个动作release
,但这与REST方法不一致。这是真的吗?我看到了这个问题How to Route non-CRUD actions in a RESTful ASP.NET Web API?,也许正确的解决方案是将属性与其他属性相同(如我的例子所示)
第3个问题:服务器知道哪些字段可以从哪些用户设置。 例如,当用户C尝试对c4进行定值时,是否以正确的方式响应错误?