Sagen wir, ich habe zwei Objekte, Benutzer und Termine, wo Benutzer einen oder mehrere Termine haben können.Was ist die beste Vorgehensweise für Routing-Beziehungen in einer REST-API?
Ich bin neugierig, wenn ich den Konsumenten der API erlauben sollte, von den Benutzern aus dem Appointments Controller zu "filtern". Hier sind die Rufe ich im Sinn für die GET-Operationen haben:
Users Controller
GET
api/Users
api/Users/{userId}
api/Users/{userId}/Appointments
api/Users/{userId}/Appointments/{appointmentId}
Appointments Controller
GET
api/Appointments/
api/Appointments/{appointmentId}
Ich bin gespannt, ob es eine gute Idee (Good Practice) ist Filter für die Benutzer in den Ernennungen Controller zu implementieren ... So werden die Anrufe über werden würde:
Appointments Controller
GET
api/Appointments/{userId:int?}
api/Appointments/{appointmentId}
In den obigen Anrufe habe ich einen optionalen Abfragezeichenfolgeflag Parameter für die Benutzer-ID hinzugefügt, die auf null wird standardmäßig. Dies würde es einem Aufrufer ermöglichen, entweder alle Termine abzurufen oder Termine nach userId abzurufen.
Ich glaube, ich bin mir nicht wirklich sicher, was als Best Practice für Objekte mit Beziehungen gilt.