如何为媒体分析引擎设计REStful API
我不熟悉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
- 客户端将配置XML文件发布到
。这将创建一个可用于多个分析会话的配置文件。响应XML包含一个http://manalysis.com/facerecognition
,用于引用此配置文件。客户端可以跳过此步骤以使用默认配置参数ProfileID
- 客户端将要分析的视频数据发布到
(如果设置了ProfileID,则将其作为参数)。这将创建一个分析会话。返回XML具有http://manalysis.com/facerecognition
SessionID
- 客户端可以发送一个GET to
以接收会话状态http://manalysis.com/facerecognition/SessionID
- 我应该在URL中包含
?RoyFielding说“RESTAPI不能定义固定的资源名称或层次结构”,这是一个错误的例子吗facerecognition
- 分析结果可以在一个大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>