Как разработать RStful API для механизма анализа мультимедиа

StackOverflow https://stackoverflow.com/questions/1645744

  •  22-07-2019
  •  | 
  •  

Вопрос

Я новичок в концепции Restful, и мне нужно разработать простой API для службы анализа мультимедиа, которую мне нужно настроить для выполнения различных задач, например.анализ лица, определение области и т. д.на загруженных изображениях и видео.

Схема моего первоначального дизайна такова:

  • Клиент отправляет POST XML-файл конфигурации http://manalysis.com/facerecognition.Это создает профиль который можно использовать для нескольких сеансов анализа.XML ответа включает в себя ProfileID для ссылки на этот профиль.Клиенты могут пропустить этот шаг, чтобы использовать параметры конфигурации по умолчанию.
  • Видеоданные клиента POST для анализа http://manalysis.com/facerecognition (с ProfileID в качестве параметра, если он настроен).Это создает сеанс анализа.Возвратный XML имеет SessionID.
  • Клиент может отправить GET на http://manalysis.com/facerecognition/SessionID чтобы получить статус сессии.

Я на правильном пути?Конкретно у меня есть следующие вопросы:

  • Должен ли я включить facerecognition в URL?Рой Филдинг говорит, что «REST API не должен определять фиксированные имена ресурсов или иерархии». Это пример той ошибки?
  • Результаты анализа могут быть возвращены клиенту в одном большом XML-файле или при обнаружении каждого события.Как мне сообщить механизму анализа, куда возвращать результаты?
  • Должен ли я явно удалить профиль после завершения анализа с помощью вызова DELETE?

Спасибо,

С

Это было полезно?

Решение

Вы можете исправить URL-адрес точки входа,

GET /facerecognition

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

Создайте новый профиль, разместив профиль XML по URL-адресу в атрибуте href элемента Profiles.

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

Запустите анализ, создав новый запрос на анализ.Я бы избегал использования термина «сессия», поскольку он слишком общий и вызывает множество негативных ассоциаций в мире REST.

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

Проверьте статус процесса

GET /facerecognition/analysisrequest/2103

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

когда обработка завершится, тот же GET может вернуться

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

Конкретные URL-адреса, которые я выбрал, относительно произвольны, вы можете использовать те, которые вам наиболее понятны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top