java - REST 请求通常是 JSON 输出还是其他?

标签 java javascript rest

像 Java 的 jax-rs 一样的完整 REST api 包含定义资源路径的定义,使用完整的 GET、POST、PUT 请求。

但通常当我遇到 REST API 时,它通常是标准的 HTTP GET 请求,响应是 JSON 输出。看起来真实世界的 REST 请求的内容是使用 JSON 输出,但 REST 的真正定义允许 XML、JSON 或其他输出类型。

例如,twitter API 有“JSON”输出,它们使用 GET 请求,这里是一些 URL:

https://dev.twitter.com/docs/api/1.1/get/search/tweets

并且您仍然可以使用“GET”参数来修改请求。 Twitter 的“搜索/推文”功能似乎只是一个简单的 http 请求,具有定义明确的 URI 路径,恰好返回 JSON 响应。那真的是 REST 吗?

对您来说,REST API 是什么?

在 Jax-rs 上 http://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services

(抱歉,如果这有点主观或轶事,但我相信开发人员对此感到疑惑)

最佳答案

REST (Representational State Transfer) 是一种模糊的架构设计模式,最早出现在 a paper 中。作者 Roy Fieldings(又名 HTTP 的创建者)。

大多数时候(99% 的时间)当有人想要一个 REST API 时,他们的意思是他们想要一个 Web API,他们发送一个请求,其中包含一个 HTTP 动词和一个描述 资源位置的 URL 将由 HTTP 动词执行。然后,Web 服务器在 Resource 上执行请求的动词,并向用户发回 Response。响应通常(取决于所使用的 HTTP 动词)包含生成的资源 的表示。资源可以表示为 HTML、JSON、XML 或许多其他不同的 mime types .

响应中使用的哪种表示并不能真正表明 API 是否是 RESTful;它是接口(interface) URL 的结构以及 Web 服务器的行为是如何使用 HTTP 动词定义的。正确兼容的 REST API 应该使用 GET 动词来仅读取资源,使用 POST 动词来修改资源,使用 PUT 来添加/替换资源,以及使用 DELETE 来删除资源。 HTTP Specification 中列出了预期动词行为的更正式定义。 .

关于java - REST 请求通常是 JSON 输出还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15081494/

相关文章:

java - 根据我的位置找到其他用户

java - 隐藏由 java 应用程序启动的窗口应用程序?

javascript - 在JS中,processMethod = processMethod || 是什么意思?功能(){};做?

wcf - 关于使用 WCF 进行 HMAC 身份验证的说明

java - Jira Rest Java 客户端的 ClassNotDef 异常

java - 用于读取 Java 文件的最好/最简单的类是什么?

java - 我如何知道在内部(成员)类上使用哪个构造函数?

javascript - 按数字顺序对本地存储键进行排序

javascript - React 上下文消费者如何访问消费组件的引用

rest - PayPal REST API - 如何获取 API 凭据?