如何为媒体分析引擎设计REStful API

如何为媒体分析引擎设计REStful API,api,rest,face-recognition,Api,Rest,Face Recognition,我不熟悉Restful概念,必须为我需要设置的媒体分析服务设计一个简单的API,以便在上传的图像和视频上执行各种任务,例如人脸分析、区域检测等 我的初步设计概要如下: 客户端将配置XML文件发布到http://manalysis.com/facerecognition。这将创建一个可用于多个分析会话的配置文件。响应XML包含一个ProfileID,用于引用此配置文件。客户端可以跳过此步骤以使用默认配置参数 客户端将要分析的视频数据发布到http://manalysis.com/facereco

我不熟悉Restful概念,必须为我需要设置的媒体分析服务设计一个简单的API,以便在上传的图像和视频上执行各种任务,例如人脸分析、区域检测等

我的初步设计概要如下:

  • 客户端将配置XML文件发布到
    http://manalysis.com/facerecognition
    。这将创建一个可用于多个分析会话的配置文件。响应XML包含一个
    ProfileID
    ,用于引用此配置文件。客户端可以跳过此步骤以使用默认配置参数
  • 客户端将要分析的视频数据发布到
    http://manalysis.com/facerecognition
    (如果设置了ProfileID,则将其作为参数)。这将创建一个分析会话。返回XML具有
    SessionID
  • 客户端可以发送一个GET to
    http://manalysis.com/facerecognition/SessionID
    以接收会话状态
我走对了吗?具体而言,我有以下问题:

  • 我应该在URL中包含
    facerecognition
    ?RoyFielding说“RESTAPI不能定义固定的资源名称或层次结构”,这是一个错误的例子吗
  • 分析结果可以在一个大XML文件中返回给客户端,也可以在检测到每个事件时返回给客户端。我应该如何告诉分析引擎在哪里返回结果
  • 在完成分析时,是否应该通过删除调用明确删除配置文件
谢谢


C

您可以修复入口点url

GET /facerecognition

<FaceRecognitionService>
  <Profiles href="/facerecognition/profiles"/>
  <AnalysisRequests href="/facerecognition/analysisrequests"/>
</FaceRecognitionService>
通过创建新的分析请求来启动分析。我会避免使用session这个词,因为它太笼统了,而且在世界其他地方有很多负面的联想

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/facerecognition/analysisrequest/2103
处理
处理完成后,可以返回相同的GET

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

完整的

我选择的特定url是相对随意的,您可以使用最清晰的url。

还有一个问题:如何指定引擎使用流媒体视频IP地址而不是帖子中的文件?将url发布到帖子正文中的流媒体视频,或者在查询字符串中,并允许服务器对视频源执行HTTP GET。
<AnalysisRequest>
   <Status>Completed</Status>
   <Results href="/facerecognition/analysisrequest/2103/results" />
</AnalysisRequest>