我正在开发一个RESTful服务,在该服务中可以执行进程并提供最终的计算结果。为此,我已将流程本身建模为资源(例如:/ processes / translate)。我想通过发送带有附加输入参数作为查询参数的GET请求来执行该过程(例如:/ processes / translate?input1 = xxxx& input2 = xxxxx)。
每个进程都有不同的输入参数,这些参数是在后端创建进程时定义的。我的问题是我应该如何记录或描述以机器可读形式执行过程所需的输入。例如,XML。
直到现在,我已在Representation中集成了atom:link元素。我认为可能包括XFORM可能是一个解决方案吗?
最诚挚的问候 安德烈
答案 0 :(得分:2)
我不会用GET来模拟这个。虽然这是更简单的解决方案,但它也是(IMO)最少的RESTful。我会让客户发布一个文档来描述他们希望你翻译的内容,然后你的服务会将它们发回给一个可以找到答案的URI(某些翻译可能需要一段时间)。
示例(省略大量HTTP标头/上下文)
POST /processes/translate
Content-Type: application/xml
...
<translation-request>
<input1 type="type1">....</input1>
<input2 type="type5">....</input2>
</translation-request>
响应:
200 OK
Content-Location: /processes/translate/jobs/1234
....
答案 1 :(得分:0)
这总是一个有趣的问题。我们有一个名为RESTx(http://restx.org)的项目,您可以使用它轻松创建RESTful web services。您可以用Java或Python编写自定义组件代码,然后通过向服务器发送参数集来创建RESTful resources,然后存储这些参数集。但是,每个参数集都有自己的URI,所以你总是可以通过访问新参数集的URI来运行带有这些参数的代码。
重要的是,整个RESTful API会自动创建。 RESTx检查组件代码,然后组装API描述。我们决定以人类和机器可读的方式描述参数。您可以看到in a browser或in plain JSON的内容示例。
我是这方面的首席开发人员,所以如果您有任何问题,请随时与我联系。