REST API用于设置不同用户可访问的字段

时间:2015-09-22 07:24:12

标签: api rest asp.net-web-api crud

我有一个包含10个cols的db产品表,我希望通过REST Web API使表可访问。 我有4种类型的用户可以对不同的不相交的字段集(cols)进行评估。 例如:

  • 用户A可以定义密钥c1,c2
  • 用户B可以对c3,c4,c5进行评估
  • 用户C可以定价c6,c7,c8
  • 用户D可以定价c9

我的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进行定值时,是否以正确的方式响应错误?

0 个答案:

没有答案