Pergunta

Eu sou novo ao conceito Sossegado e tem que projetar uma API simples para um serviço de análise de mídia eu preciso de configurar, para executar várias tarefas, por exemplo, análise de rosto, detecção de região, etc. em imagens carregadas e vídeo.

Contorno do meu projeto inicial é a seguinte:

  • POSTs cliente um arquivo XML de configuração para http://manalysis.com/facerecognition. Isso cria um perfil que pode ser usado para várias sessões de análise. XML Response inclui um ProfileID para se referir a esse perfil. Os clientes podem pular esta etapa para usar os parâmetros de configuração padrão
  • dados de vídeo POSTs cliente a ser analisados ??para http://manalysis.com/facerecognition (com profileId como um parâmetro, se for configurada). Isso cria uma sessão de Análise . Retorno XML tem a SessionID.
  • O cliente pode enviar um GET para http://manalysis.com/facerecognition/SessionID para receber o status da sessão.

Am I no caminho certo? Especificamente, eu tenho as seguintes perguntas:

  • Devo incluir facerecognition na URL? Roy Fielding diz que "uma API REST não deve definir nomes de recursos fixos ou hierarquias" É este um caso de esse erro?
  • Os resultados da análise podem ser devolvido ao cliente em um grande arquivo XML ou quando cada evento é detectado. Como devo dizer ao mecanismo de análise onde retornar os resultados?
  • Devo excluir explicitamente um perfil quando a análise é feita, através de uma chamada apagar?

Obrigado,

C

Foi útil?

Solução

Você pode corrigir a url ponto de entrada,

GET /facerecognition

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

Criar um novo perfil ao postar o perfil XML para o URL no atributo href do elemento Perfis

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

Iniciar a análise através da criação de um novo pedido de análise. Gostaria de evitar usando a sessão de prazo, uma vez que é muito genérico e tem muitas associações negativas no mundo do REST.

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

Verifique o status do processo

GET /facerecognition/analysisrequest/2103

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

quando o processamento estiver concluído, o mesmo GET poderia retornar

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

As URLs específicos que eu escolhi são relativamente arbitrária, você pode usar o que é a mais clara para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top