什么是REST调用以及如何发送REST调用?

26

我想询问一些关于 REST 调用的问题。我对 REST 调用很陌生,想了解什么是 REST 调用以及如何使用 URL 发送 REST 调用到服务器。是否有人可以给我提供一些基础教程或链接供我参考?

此外,如果我想向服务器发送 REST 调用,我应该怎么做?我需要在 URL 中设置什么吗?还是需要在服务器上设置什么?谢谢。


3
StackOverflow的“REST”标签有一个关于页面,其中包含有用的链接:http://stackoverflow.com/tags/rest/info。 - Darrel Miller
2
这个问题在这里已经被问过很多次了。你有搜索过现有的问题吗? - Darrel Miller
3
如果这个问题以前被问过很多次,你应该将它标记为重复。 - Keith Pinson
2个回答

18

REST只是一种软件架构风格,用于公开资源。

  • 显式使用HTTP方法。
  • 无状态。
  • 公开类似目录结构的URI。
  • 传输XML、JavaScript对象表示法(JSON)或两者兼备。

一个典型的REST调用可用于返回有关客户34456的信息:

http://example.com/customer/34456

请查看IBM教程,了解REST Web服务。


3
REST 不限于任何特定的媒体类型。可以使用 text/plain、image/jpeg、text/html、application/xhtml,或者自己创建。 - Darrel Miller

11

REST 即一种对老式 HTTP 的复兴,其中实际的 HTTP 动词(命令)具有语义意义。直到最近,想要在服务器上更新东西的应用程序将提供包含“操作”变量和一堆数据的表单。HTTP 命令几乎总是 GETPOST,并且几乎是无关紧要的。(虽然一直以来禁止使用 GET 进行具有副作用的操作,但实际上很多应用程序不在意使用的命令。)

使用 REST,您可以使用 PUT /profiles/cHao,并发送 XML 或 JSON 表示的个人资料信息(或者更确切地说,我会这样做 -- 您需要更新自己的个人资料。 :)这通常需要通过 HTTP 的内置身份验证机制进行登录。

http://zh.wikipedia.org/wiki/表现层状态转移 中有一些详细信息。


谢谢您的回复。但我还是不完全明白。您的意思是我需要在 .xml 文件中设置一些内容,还是只需像 GET 一样在 URL 中添加参数即可? - Questions
@问题:通常情况下,你不会像在GET请求中使用参数那样使用“params”。PUT /profiles/cHao 表示要做什么,因为RESTful服务将把 /profiles/cHao 暴露为资源(例如:我也可以 GET /profiles/cHao 并获得我的个人资料的XML或JSON版本),而 PUT 部分表示我想要替换它。唯一需要设置的是请求正文(即个人资料本身,通常会以XML或JSON格式呈现)和用户名和密码或客户端证书(因为大多数服务不允许陌生人修改别人的东西)。 - cHao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接