【问题标题】:How to make REST requests more user friendly like RPC?如何使 REST 请求像 RPC 一样对用户更友好?
【发布时间】:2012-05-02 09:14:01
【问题描述】:

我一直在高度考虑创建 REST 服务而不是 RPC,但在我看来,与 RPC 服务相比,客户端/用户必须编写大量代码才能实现相同的目标。此外,实现 REST 服务需要用户具备一些有关 REST 的基本知识。用 PHP 来说明:

休息

  • 要发送 GET、POST、PUT、DELETE 请求,用户必须使用 CURL 发送他的请求
  • 当然这需要他的服务器启用 CURL,对某些共享主机不利
  • 除了用户需要发送的数据参数之外,CURL 还需要额外的代码行来发送请求。

RPC

  • 要使用 RPC 服务发送类似的请求,用户只需调用 URL 和数据参数即可。即:example.com?foo=bar&baz=quz

有没有办法让 REST 像 RPC 一样“简单”。我正在考虑用 RPC 方法封装 REST 请求,但这打破了整个想法,不是吗?

【问题讨论】:

  • 是什么让你认为无法通过 URL 调用 rest 服务?
  • @Interstellar_Coder 如何通过 URL 发送 PUT POST DELETE 请求?
  • IMB,很公平,你做不到这些。

标签: php api rest rpc


【解决方案1】:

REST 不会强制您使用 GET、POST、PUT 和 DELETE。它只是意味着单个 URL 代表单个内容。您还可以像这样实现 RESTful 行为:

GET /index.php
GET /item.php?id=x
POST /create.php
POST /update.php
POST /delete.php

甚至可以通过 get 请求完成创建、更新和删除...

【讨论】:

  • 现在看起来像 RPC 服务吗,因为您基本上只使用 GET 吗?而且,没有更统一的“资源”。从 RESTful 的角度来看,indexitemcreateupdatedelete 是一堆不同的资源。在 RPC 中,它们可以表示相同的资源。好吧,我想我可以实现它,但它不再是 RESTful,只是 REST'sh :-)
  • RPC 通常有一个访问点,您可以将要调用的方法和要传递给方法的参数传递给该访问点,即。在 XML、JOSN、YAML 等中,在单个 POST 变量中。
  • 确实如此,但是 POST 并不总是必需的,也不是作为标准强制执行的。回到您对纯粹主义者的原始建议,对 GET 请求使用创建、更新和删除操作违反了 RESTful 标准原则。好吧,我想我的整个意图确实是要打破它,这样对用户来说更容易,所以他们不必显式使用 CURL 来发送 PUT POST DELETE。话虽如此,我想你的建议会做。
猜你喜欢
  • 2016-04-06
  • 2013-11-03
  • 1970-01-01
  • 2013-12-27
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
相关资源
最近更新 更多