• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

通过HTTP模拟过程调用的最佳/最RESTful方式是什么?

rest 来源:John B 3次浏览

我有一个服务需要.odt模板文件和一些文本值,并在输出时生成.odt。我需要通过HTTP使这项服务可用,而我不知道什么是使RESTful界面工作的最有效途径。通过HTTP模拟过程调用的最佳/最RESTful方式是什么?

我需要能够提供的模板文件,并输入值,服务器 – 并获得所产生的.odt文件发回给我。我看到这是如何工作的选项有:

  1. PUT或POST模板到服务器,然后做一个GET请求,沿着我刚刚发布模板的URI传递,再加上输入值 – 将GET响应主体将拥有.odt
  2. 在单个GET请求中发送模板和参数 – 模板文件将进入GET请求主体。
  3. 像上面的(2)一样,除了做整个事情作为单个POST请求而不是GET。

(1)的问题是我不想将模板文件存储在服务器上。这增加了复杂性,并且除了它是一种非常REST风格的方法之外,存储该文件对我来说没有用处。另外,一个请求会比2更好,所有其他事情都是平等的。

与(2)是把身体的GET请求接壤HTTP的滥用问题 – 这是我现在使用的软件支持,但不一定是。

数字(3)似乎有误导性,因为这比’发布’更自然地是’读取’或’获取’操作。我正在做的事情本质上就像一个函数调用 – 我需要在中传递大量的数据,而且我真的只是使用HTTP作为在网络上公开我的代码的便捷方式。也许我想要做的事情本质上不是RESTful,并且没有REST友好的解决方案?任何人都可以建议吗?谢谢!


===========解决方案如下:

你在做什么不是休息-FUL – 或者,至少,是很难在REST来表达,因为你都在思考的操作第一,不是第一对象。

最REST-ful表达式是创建一个新的“OdtTemplate”资源(或获取现有URI的资源),创建一个新的“SetOfValues”资源,然后创建一个与其绑定的“FillInTemplateWithValues”作业资源输入到这两个输入中,并且可以读取它们以确定作业的状态,并获取指向包含结果的最终“FilledInDocument”对象的指针。

REST是关于创建,读取,更新和销毁对象的全部内容。如果您不能将您的流程建模为CRUD数据库,则它不是REST。这意味着您需要将模板存储在服务器上。

尽管实现RPC over HTTP模型,然后提交模板和值,然后同步获取响应 – 或者您指定的其他非REST模式之一,您可能会更好……因为这是正是你想要的。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)