JAX-RS / REST资源究竟是什么?

时间:2016-07-01 19:12:18

标签: java rest

“资源是REST中的基本概念之一.REST强调资源的操纵而不是发出函数调用。资源具有唯一标识符。在HTTP术语中,这意味着将每个资源与至少一个URL相关联。” https://cwiki.apache.org/confluence/display/WINK/JAX-RS+Resources,+HTTP+Methods,+and+Paths

我们将什么作为资源实施?它是一组功能,一个对象,多个对象..?

2 个答案:

答案 0 :(得分:2)

  

REST中信息的关键抽象是一种资源。可以命名的任何信息都可以是资源:文档或图像,临时服务(例如“洛杉矶的今天天气”),其他资源的集合,非虚拟对象(例如人)等等。换句话说,任何可能是作者超文本引用目标的概念都必须符合资源的定义。资源是对一组实体的概念映射,而不是与任何特定时间点的映射相对应的实体。

     

此资源的抽象定义支持Web体系结构的关键功能。首先,它通过包含许多信息来源提供了一般性,而没有按类型或实施人为地区分它们。其次,它允许将引用后期绑定到表示,从而允许基于请求的特征进行内容协商。最后,它允许作者引用该概念而不是该概念的某些单一表示,从而无需在表示发生变化时更改所有现有链接(假设作者使用了正确的标识符)。

Fielding

  

我们将什么作为资源实施?它是一组功能,一个对象,多个对象..?

几乎任何具有一个或多个可以序列化为字节流的表示的东西。

URI(统一资源标识符)的大多数设计指南都要求使用名词而不是动词来证明资源是逻辑实体的参数。< / p>

答案 1 :(得分:1)

参见JAXRS Specification的第3部分:

  

使用JAX-RS,Web资源实现为资源类和   请求由资源方法处理。

     

资源类是使用JAX-RS注释的Java类   实现相应的Web资源。资源类是POJO   至少有一个用@Path或请求方法注释的方法   代号。

所以基本上它是一个类,通常带有@Path注释,

@Path("/")
public class HelloWorldResource {
 ...
}
  

资源方法是用a注释的资源类的方法   请求方法指示符。

资源方法是一种方法,通常使用@GET@POST或其他方式进行注释:

@GET
public String getHello() {
   return "Hello";
}
  

请求方法指示符是一个带注释的运行时注释   使用@HttpMethod注释。 JAX-RS定义了一组请求   常见HTTP方法的方法指示符:@ GET,@ POST,@ PUT,   @ DELETE,@ HEAD和@OPTIONS。用户可以定义自己的自定义请求   方法指示符包括常见HTTP的备用指示符   方法

有关详细信息,请参阅jersey documentation有关资源的信息。