Question

Je suis nouveau dans le concept Restful et dois concevoir une API simple pour un service d'analyse multimédia que je dois configurer pour effectuer diverses tâches, par exemple. analyse de visage, détection de région, etc. sur les images et la vidéo téléchargées.

Voici un aperçu de ma conception initiale:

  • Le client soumet un fichier XML de configuration à http://manalysis.com/facerecognition . Cela crée un profil pouvant être utilisé pour plusieurs sessions d'analyse. Response XML inclut un ProfileID pour faire référence à ce profil. Les clients peuvent ignorer cette étape pour utiliser les paramètres de configuration par défaut
  • Les données vidéo du client POST à ??analyser avec http://manalysis.com/facerecognition (avec ProfileID en tant que paramètre, s'il est configuré). Cela crée une session d'analyse . Le code XML renvoyé a le SessionID .
  • Le client peut envoyer un message GET à http://manalysis.com/facerecognition/SessionID pour recevoir le statut de la session.

Suis-je sur la bonne voie? Plus précisément, j'ai les questions suivantes:

  • Dois-je inclure facerecognition dans l'URL? Roy Fielding indique qu’une API REST ne doit pas définir de noms de ressources fixes ni de hiérarchies " Est-ce un exemple de cette erreur?
  • Les résultats de l'analyse peuvent être renvoyés au client dans un fichier XML volumineux ou lors de la détection de chaque événement. Comment dois-je indiquer au moteur d'analyse où renvoyer les résultats?
  • Devrais-je supprimer explicitement un profil une fois l'analyse effectuée, via un appel à SUPPRIMER?

Merci,

C

Était-ce utile?

La solution

Vous pouvez corriger l'URL du point d'entrée,

GET /facerecognition

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

Créez un nouveau profil en publiant le profil XML sur l'URL de l'attribut href de l'élément Profiles

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

Lancez l'analyse en créant une nouvelle demande d'analyse. J'éviterais d'utiliser le terme session car il est trop générique et présente de nombreuses associations négatives dans le monde REST.

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

Vérifier l'état du processus

GET /facerecognition/analysisrequest/2103

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

une fois le traitement terminé, le même GET pourrait être renvoyé

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

Les URL spécifiques que j'ai choisies sont relativement arbitraires, vous pouvez utiliser ce qui est le plus clair pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top