0

像 Twitter 这样的网站如何为可以有多种返回类型的 API 构建服务器端?

例如: https ://dev.twitter.com/docs/api/1.1/post/statuses/update 在这个链接中,你可以发现他们的示例资源 url 是“ https://api.twitter.com/1.1/状态/更新.json "

使用“.json”扩展名,它们区分返回类型。我的问题基本上是,如果这是他们使用的方法,那么解析 url 并使用普通字符串操作获取扩展名,或者他们是 REST 中的内置支持,能够这样做。此外,是否有多个 API 用于多种返回类型更好,还是可以有一个 API 可以有多种返回类型?

4

1 回答 1

0

在 Java 中,规范 JAX-RS 提供了@Produces注解。环境

@Produces("application/json")

on a 方法将使该方法匹配任何带有 HTTP 标头的请求

Accept: application/json

显然 Twitter 正在做其他事情。使用 JAX-RS,您可以使用路径匹配。

@Produces("application/json")
@Path("/1.1/statuses/update.json")

可能是产品的方法的注释,application/json

@Produces("application/xml")
@Path("/1.1/statuses/update.xml")

可能是产生application/xml.

我建议不要采用 Twitter 将内容类型放入 URI 的方式。而是使用适当的 HTTP 内容协商工具与 HTTP 标头AcceptContent-Type.

于 2013-07-29T07:37:35.513 回答