如何设计一个媒体分析引擎一个RESTful API(How to design a REStful

2019-09-02 08:39发布

我是新来的宁静的概念,必须设计一个媒体分析服务,我需要设置,对上传的图片和视频执行各种任务,如面部分析,区域检测等简单的API。

我最初设计的要点如下:

  • 客户员额配置XML文件http://manalysis.com/facerecognition 。 这将创建可用于多种分析会话的配置文件 。 响应XML包括ProfileID指此配置文件。 客户可以跳过这一步使用默认的配置参数
  • 客户端的POST视频数据进行分析,以http://manalysis.com/facerecognition (与简档作为参数,如果它的设置)。 这将创建一个会话分析 。 返回XML具有SessionID
  • 客户端可以发送GET来http://manalysis.com/facerecognition/SessionID接收会话的状态。

我在正确的轨道上? 具体来说,我有以下问题:

  • 我应该包括facerecognition的网址是什么? 罗伊菲尔丁说:“一个REST API一定不能定义固定的资源名称或层次结构”这是错误的实例?
  • 分析结果可以被返回到客户端在一个大的XML文件或当检测到的每个事件。 我该如何告诉分析引擎,其中返回的结果?
  • 当分析完成后,通过DELETE调用我应该明确地删除个人资料?

谢谢,

C

Answer 1:

您可以修复的入口点URL,

GET /facerecognition

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

通过在情景元素的href属性张贴XML配置文件的URL创建一个新的配置文件

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

通过创建一个新的分析请求启动分析。 我会避免使用术语会话,因为它太普通了,有很多在世界其它地区的负面联想。

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>

我所选择的具体网址是比较随意的,你可以使用什么是最清楚的给你。



文章来源: How to design a REStful API for a media analysis engine