Frage

Ich bin neu in Restful Konzept und muß eine einfache API-Entwurf für eine Medienanalyse Service, den ich brauche, einzurichten verschiedene Aufgaben auszuführen, zum Beispiel Gesichtsanalyse, Region Erkennung, usw. auf hochgeladene Bilder und Video.

Überblick über meinen ersten Entwurf ist wie folgt:

  • Client sendet eine XML-Konfigurationsdatei http://manalysis.com/facerecognition. Dadurch entsteht ein Profil , die für mehrere Analysesitzungen verwendet werden können. Antwort XML enthält ein ProfileID zu diesem Profil zu verweisen. Kunden können diesen Schritt überspringen die Standardkonfigurationsparameter zu verwenden,
  • Client POSTs Videodaten analysiert werden, um http://manalysis.com/facerecognition (mit Profileid als Parameter, wenn es eingerichtet ist). Dies schafft eine Analysesitzung . Zurück XML hat die SessionID.
  • Client kann eine GET senden http://manalysis.com/facerecognition/SessionID den Status der Sitzung zu erhalten.

Bin ich auf dem richtigen Weg? Insbesondere habe ich folgende Fragen:

  • Sollte ich in der URL facerecognition? Roy Fieldings sagt, dass „eine REST-API nicht fest Ressourcennamen oder Hierarchien definieren müssen“ Ist dies eine Instanz dieser Fehler?
  • Die Analyseergebnisse können entweder an den Client in einer großen XML-Datei zurückgegeben werden oder wenn jedes Ereignis erkannt wird. Wie soll ich sagen, die Analyse-Engine, wo die Ergebnisse zurück?
  • Soll ich explizit ein Profil löschen, wenn die Analyse durchgeführt wird, durch einen DELETE-Anruf?

Danke,

C

War es hilfreich?

Lösung

Sie können den Einstiegspunkt URL beheben,

GET /facerecognition

<FaceRecognitionService>
  <Profiles href="/facerecognition/profiles"/>
  <AnalysisRequests href="/facerecognition/analysisrequests"/>
</FaceRecognitionService>
Erstellen

ein neues Profil durch die Veröffentlichung des XML-Profils an die URL im Attribut href des Profiles Element

POST /facerecognition/profiles
201 - Created
Location: /facerecognition/profile/33

Starten Sie die Analyse durch eine neue Analyse anfordern zu schaffen. Ich möchte vermeiden, den Begriff Sitzung mit, da sie zu allgemein ist und hat viele negative Assoziationen in der REST Welt.

POST /facerecognition/analysisrequests?profileId=33
201 - Created
Location: /facerecognition/analysisrequest/2103

Überprüfen Sie den Status des Prozesses

GET /facerecognition/analysisrequest/2103

<AnalysisRequest>
   <Status>Processing</Status>
   <Cancel Method="DELETE" href="/facerecognition/analysisrequest/2103" />
</AnalysisRequest>

, wenn die Verarbeitung abgeschlossen ist, könnte die gleiche GET zurückkehren

<AnalysisRequest>
   <Status>Completed</Status>
   <Results href="/facerecognition/analysisrequest/2103/results" />
</AnalysisRequest>

Die spezifische URLs, die ich ausgewählt habe, ist relativ willkürlich, können Sie verwenden, was auch immer das deutlichste zu Ihnen ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top