Ich entwerfe einen erholsamen Webservice, um Berichte zu erstellen und zu lesen, die aus einer App erstellt wurden. Beim Erstellen eines Berichts ist es möglich, einige datenschutzrelevante Informationen hinzuzufügen, wie einen Namen, eine Telefonnummer, eine E-Mail usw. Nach dem Erstellen des Berichts wird dieser über denselben Web-Service öffentlich sichtbar gemacht.Restful Web Service, teilweise Leseerlaubnis
POST /report
{
"name":"test",
"email":"[email protected]",
"report_contents":....
}
liefert 200 OK mit:
{
"id":1,
"report_contents":....
}
und ein Verfahren sagte zu erhalten Bericht: GET/Bericht/{REPORT_ID}
Ich habe eine andere App, mit der ein Administrator die verwalten Berichte, die über den vorherigen Webdienst erstellt wurden. In dieser Anwendung möchte ich die datenschutzrelevanten Informationen anzeigen. Es verwendet die folgende URL, um einen bestimmten Bericht abzurufen.
GET /report/{report_id}
die 200 OK zurück:
{
"id":1,
"name":"test",
"email":"[email protected]",
"report_contents":....
}
Jetzt gibt es das Problem. Dies ist die exakt gleiche URL. Ist es möglich/konventionell oder sogar eine gute Idee, den gleichen Web-Service für beide Anrufe zu nutzen, aber eine Art von CRUD-Management damit, wo je nach der Rolle des Benutzers ein Teil der Informationen nicht angezeigt/blockiert wird? Oder wäre es besser, einen separaten Webdienst mit Einschränkungen einzurichten?
Was Sie sagen, macht viel Sinn. Was ich vergessen habe zu erwähnen, ist, dass ich die API mit einem API-Schlüssel oder Oauth2 schützen werde. Basierend auf der Rolle werde ich zurückgeben, was sie sehen dürfen. – Terabyte
Ist Mehrdeutigkeit kein Problem bei der Definition eines Modells, das zurückgegeben werden soll? – Terabyte
Mehrdeutigkeit wo?Ein REST-Client muss mit dem Empfang verschiedener Repräsentationen umgehen können. – Joe