Ich mag gerne wissen, was die beste Praxis ist RESTful Objekte nach einem Authentifizierungsverfahren für das Laden.Läden RESTful Objekte nach der Authentifizierung
Zum Beispiel habe ich eine App, dass nach der Anmeldung, eine Liste von Personen abrufen muss, Orte und einige anderen Konten-relevanter Informationen. Welcher der folgenden Punkte wäre die beste Vorgehensweise?
A. Nachdem die App POST/api/v1/login sollte es ruft zurück:
{
"token": "xxxxx.yyyyyyy.xzzzzzzzzz",
"persons": [
{"id": 1, "name": "John"},
{"id": 2, "name": "Paul"},
{"id": 3, "name": "George"},
{"id": 3, "name": "Ringo"}
],
"places": [
{"id": 1, "name": "London"},
{"id": 2, "name": "New York"},
],
"lastLogin": "2017-09-10 13:00:00"
}
Diese Methode erleichtert auf den App-Entwickler zu machen scheint, weil sie müssen nicht telefonieren die separat zu erhalten. Aber es scheint eng miteinander verbunden zu sein.
B. Oder sollte es nur zurück
{
"token": "xxxxx.yyyyyyy.xzzzzzzzzz"
}
und die App sollten die anderen Daten separat unter Verwendung beispielsweise laden,
GET /api/v1/persons
GET /api/v1/places
GET /api/v1/lastlogin
Diese Methode sauberer zu sein scheint, aber es kann für den App-Entwickler schwieriger. Und es würde ein zusätzlicher Anforderungsaufwand entstehen, besonders wenn Sie viele verschiedene Modelle laden.
C. Oder sollte ich gerade einen Anruf mit dem Namen /api/v1/loginWithData haben, der das Token mit den Daten zurückgibt, und ein separates /api/v1/login, das nur das Token zurückgibt? Diese Methode hat das Beste aus beiden, scheint aber den API-Namespace zu überladen.
Ich würde es wirklich zu schätzen, wenn Sie Links senden, die erklären würde, so kann ich von ihnen lernen.
Ich neige dazu, auch Ihnen zuzustimmen. Aber ist das übliche Praxis oder ist es nur der Einfachheit halber? –
@aljof Welcher Teil? – inf3rno
Wo du erwähnt hast: "Ich würde den POST/api/v1/auth-Link verwenden, der dir das GET/api/v1/user/136 gibt". Ich schätze, ich frage, warum die Antwort des POST nicht die Daten enthält, die meine App verwenden wird, sondern dass die App eine andere Anfrage verwendet, um die Daten zu erhalten? –