我正在设计一个宁静的Web服务来创建和读取从应用程序制作的报告。在创建报告时,可能会添加一些隐私敏感信息,如名称,电话号码,邮件等。创建报告后,通过同一Web服务将其公开显示。Restful Web服务,部分读取权限
POST /report
{
"name":"test",
"email":"[email protected]",
"report_contents":....
}
返回200 OK用:
{
"id":1,
"report_contents":....
}
和一个方法来获得上述报告: GET /报告/ {REPORT_ID}
我有另一个应用程序与一个管理员可以管理通过以前的Web服务创建的报告。在这个应用程序中,我想显示隐私敏感信息。它使用以下URL来获取特定报告。
GET /report/{report_id}
返回200 OK:
{
"id":1,
"name":"test",
"email":"[email protected]",
"report_contents":....
}
现在有问题。这是完全相同的网址。这是可能的/传统的,甚至是一个好主意,为这两个调用使用相同的Web服务,但有一些类型的CRUD管理,根据用户的角色,部分信息不被显示/阻止?或者做一个单独的带有限制的Web服务会更好吗?
你说的话很有道理。我忘记提到的是我会用API密钥或Oauth2来保护API。基于角色,我将返回他们允许看到的任何内容。 – Terabyte
定义要返回的模型时不会有问题吗? – Terabyte
歧义在哪里?REST客户端必须能够处理接收不同的表示。 – Joe