JAX-RS规范-常用注解浅析

一、@Path

若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation;

对于方法,这个annotation是可选的,如果不添加,则继承类的定义。

(1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数;

一个模板参数是一个定义在@Path里的通配符,它以 { 开始,中间是一堆字母和数字的混合串(不能包含 / 字符),以 } 结尾。又如: @Path("{firstName}-{lastName}") .

(2)@Path也支持正则表达式,例如: @Path("{id: \\d+}") ,其中 \\d+ 表示一个数字。格式为: A : B

二、@Method

(1)一个方法上只有添加了某个Http Method的annotation,例如@GET,才有资格处理请求。

(2)对于资源的具体操作类型,由HTTP动词表示。

常用的HTTP动词有下面五个(括号里是对应的SQL命令)。

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

还有两个不常用的HTTP动词。

  • HEAD:获取资源的元数据。
  • OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

下面是一些例子。

  • GET /zoos:列出所有动物园
  • POST /zoos:新建一个动物园
  • GET /zoos/ID:获取某个指定动物园的信息
  • PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
  • PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
  • DELETE /zoos/ID:删除某个动物园
  • GET /zoos/ID/animals:列出某个指定动物园的所有动物
  • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

三:Accept和Content-Type的区别

Accept就表示接口要返回给客户端的数据格式,

Content-Type表示客户端发送给服务器端的数据格式。这个是写REST接口时候定义的

正常如果服务器没定义Accept但是自己添加了的话 会报404 没找到对应接口。

四:@Produces 表示类或者方法返回的MIME数据类型。

有几种格式如下:

(1)@Produces("text/plain") 文本类型

(2)@Produces("text/html")  Html类型

(3)@Produces({"application/xml"}) Xml类型

(4)@Produces({ "application/json"}) Json类型

可以一次注解两种或多种的MIME类型,格式如:{"application/xml", "application/json"}这表示两者都可以使用,但是选择的时候一般会选择前者,即application/xml,因为它第一次出现。

五:@Consumes 代表的是一个资源可以接受的
MIME 类型。

@Consumes 注释针对 Content-Type 请求头进行匹配,以决定方法是否能接受给定请求的内容。

六:@Queryparam与@Pathparam区别

@Queryparam:指定的是URL中的参数是以键值对的形式出现的,而在程序中 @QueryParam("from")
 int from则读出URL中from的值,

例如:URL输入为:users?from=100&to=200&orderBy=age&orderBy=name

@Pathparam:URL中只出现参数的值,不出现键值对

例如: /users/100

时间: 2024-10-11 11:24:57

JAX-RS规范-常用注解浅析的相关文章

Java : JPA相关以及常用注解

SpringDataJPA自定义的查询方法 定义规范       And 并且 Or 或     Is,Equals 等于 Between 两者之间 LessThan 小于 LessThanEqual 小于等于 GreaterThan 大于 GreaterThanEqual 大于等于 After 之后(时间) > Before 之前(时间) < IsNull 等于Null IsNotNull,NotNull 不等于Null Like 模糊查询.查询件中需要自己加 % NotLike 不在模糊范

SpringMVC的常用注解

springmvc的常用注解: 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@Reques

Spring 常用注解解析

1. 常用注解 1.1 @Configuration @Configuration public class MainConfig { } @Configuration注解表明这个类是一个配置类,该类中应该包含如何在Spring应用上下文中创建bean的细节 1.2 @ComponentScan @Configuration @ComponentScan("per.ym") public class MainConfig { } @ComponentScan注解用于启用组件扫描,其作用

JAXB常用注解讲解(超详细)

简介: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档.从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数. 一个简单的例子: Person.class : @XmlRo

swagger2常用注解

本人常用注解说明: @ApiOperation:用在方法上,说明方法的作用     value: 表示接口名称     notes: 表示接口详细描述  @ApiImplicitParams:用在方法上包含一组参数说明 @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面 paramType:参数位置 header 对应注解:@RequestHeader query 对应注解:@RequestParam path  对应注解: @Path

Spring常用注解总结

传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件,那么.xml文件又会非常多.总之这将导致配置文件的可读性与可维护性变得很低.2.在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率.为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密

spring常用注解使用讲解

spring常用注解使用讲解 本文讲述spring的几个常用的注解 @RequestMapping @RequestParam @ResponseBody @RequestBody @Autowired 一.@RequestMapping  RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她分成三类进行说明. 1. value, method: v

[刘阳Java]_Spring常用注解介绍_第6讲

Spring的注解是在Spring2.5的版本中引入的,目的简化XML配置.在企业开发过程中使用注解的频率非常高,但是学习注解的前提是大家一定要对Spring基于XML配置要熟悉,这是我个人建议,因为在Spring2.0的版本时候是没有出现注解的使用 1. Spring常用注解如下 @Component @Autowired @Qualifier @Scope @Controller @Service @Repository 2. 使用Spring注解的时候一定关注Spring框架需要加入的包[

Spring常用注解,自动扫描装配Bean

1 引入context命名空间(在Spring的配置文件中),配置文件如下: Xml代码   xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd 打开配置 <context:comp