2017-12-04 3 views
0

Ich entwickle eine API für Multimedia-Service. In der Datenbank habe ich eine Medien-Tabelle, die verschiedene Medien (Filme, Musik, Serien usw.) speichert. Es gibt zwei Arten von Benutzern: Administratoren und Benutzer.Viele ähnliche Ressourcen in REST API

Benutzer können Medien mit unterschiedlichen Endpunkten zugreifen:

  • /Filme
  • /Cartoons
  • /Musik
  • /Serie
    • /Jahreszeiten
      • /Episoden
  • usw.

Jeder Endpunkt liefert nur Daten, die spezifisch für Medientyp. Jeder Endpunkt verfügt über spezifische Suchargumente.

API für Administratoren wird nicht öffentlich sein. Ist es normal, einen einzelnen Endpunkt zur Steuerung von Medientypen zu erstellen? Zum Beispiel kann ich einen /media Endpunkt erstellen, der für CRUD verschiedene Medientypen verwendet wird.

Sollte ich API für Admins und API für Benutzer in verschiedenen Projekten trennen?

Wie sollte ich mit Situationen umgehen, wenn die Ressource verschiedene Felder für Administratoren und Benutzer hat?

Antwort

0

Wie soll ich mit Situationen umgehen, wenn die Ressource verschiedene Felder für Administratoren und Benutzer hat?

Sollte ich API für Admins und API für Benutzer in verschiedenen Projekten trennen?

Wahrscheinlich. Es kann hilfreich sein, daran zu denken, dass Ressourcen Ihr Domänenmodell für das Web "anpassen" - sie sind ein Integrationsanliegen.

Das Internet ist nicht Ihre Domäne, es ist ein Dokumentenmanagementsystem. Alle HTTP-Verben gelten für die Dokumentverwaltungsdomäne. URIs werden NICHT auf Domänenobjekte abgebildet - dies verletzt die Kapselung. Die Arbeit (z. B. das Ausgeben von Befehlen an das Domänenmodell) ist ein Nebeneffekt der Ressourcenverwaltung. Mit anderen Worten, die Ressourcen sind Teil der Anti-Korruptionsschicht. Sie sollten erwarten, dass in Ihrer Integrationsdomäne viel mehr Ressourcen vorhanden sind als in Ihrer Geschäftsdomäne - Jim Webber

Verwandte Themen