`
jaesonchen
  • 浏览: 309873 次
  • 来自: ...
社区版块
存档分类
最新评论

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 

分享到:
评论

相关推荐

    jax-rs jax-ws所需包,亲测可用

    JAX-RS允许开发者使用注解来定义Web服务接口,简化了开发过程。常见的实现有Jersey、RESTEasy和Apache CXF。 2. **JAX-WS**(Java API for XML Web Services)是Java平台上的SOAP(Simple Object Access Protocol)...

    [Jax-RS] RESTful Java 开发 (Jax-RS 实现) (英文版)

    [奥莱理] RESTful Java 开发 (Jax-RS 实现) (英文版) [奥莱理] RESTful Java with Jax-RS (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java using RESTful ...

    [Jax-RS] RESTful Java 开发 (Jax-RS 2.0 实现) (英文版)

    The RESTEasy workbook that follows provides step-by-step instructions for installing, configuring, and running several working JAX-RS examples, using the JBoss RESTEasy implementation of JAX-RS 2.0. ...

    JAX-RS注解及使用方法

    JAX-RS 注解及使用方法 JAX-RS(Java API for RESTful Web Services)是一种基于 Java 语言的 RESTful Web 服务框架,它提供了一种简单、灵活的方式来开发 RESTful Web 服务。JAX-RS 使用注解来定义资源的行为和...

    jax-rs 2.1规范最终版-英文

    JAX-RS 2.1规范是JAX-RS的最新版本,它提供了一套丰富的API和运行时契约,允许Java开发者能够轻松创建RESTful服务。此规范旨在使得RESTful服务的开发更加标准化,同时提供了多种功能,如资源定位、媒体类型处理、...

    一个包含jax-ws和jax-rs的例子(含服务端和客户端)

    标题中的“一个包含jax-ws和jax-rs的例子(含服务端和客户端)”是指这是一个示例项目,它演示了如何使用Java API for XML Web Services (JAX-WS)和Java API for RESTful Web Services (JAX-RS)来创建和消费Web服务。...

    JAX-WS API, JAX-RS API

    Java API for RESTful Web Services (JAX-RS) 是Java平台上的另一项重要规范,它定义了如何在Java应用中创建RESTful Web服务。REST(Representational State Transfer)是一种轻量级的架构风格,强调资源的交互,...

    JAX-RS入门jar包集合

    - `jaxb-api`、`jaxb-impl`和`jaxb-core`:用于XML数据的序列化和反序列化,JAX-B是Java XML Binding规范,是JAX-RS默认的JSON和XML处理机制。 - `json-provider`:如果需要支持JSON,可能还需要JSON处理库,如...

    SpringMVC精品资源--JAX-RS & SpringMVC supported maven buil.zip

    SpringMVC和JAX-RS是两种在Java世界中广泛使用的Web开发框架,它们都用于构建RESTful服务,但有着不同的设计哲学和技术实现。这个压缩包"SpringMVC精品资源--JAX-RS & SpringMVC supported maven build.zip"显然是一...

    JAX-RS包(内含1.0和1.4)

    JAX-RS 1.0是最初的规范,它定义了基本的REST服务创建方法,如使用`@Path`注解定义资源路径,`@GET`、`@POST`等注解处理HTTP请求,以及`@PathParam`、`@QueryParam`等用于提取请求参数。同时,它也引入了实体类和...

    JAX-RS Extension

    **标题:“JAX-RS 扩展”** **描述**: 在Java世界中,JAX-RS(Java API for RESTful Web Services)是用于构建RESTful Web服务的标准API。这篇博客文章(遗憾的是,链接不可用)可能探讨了如何通过扩展JAX-RS来...

    JAX-RS+spring

    1. **定义**: JAX-RS 是JSR 339标准,提供了一种简化创建RESTful服务的方法,通过注解如`@Path`, `@GET`, `@POST`等,可以直接在Java类和方法上声明HTTP操作和资源路径。 2. **核心注解**: `@Path`用于指定资源类或...

    Spring MVC与JAX-RS比较与分析

    JAX-RS(JSR 311)指的是Java API for RESTful Web Services,Roy Fielding也参与了JAX-RS的制订,他在自己的博士论文中定义了REST。对于那些想要构建RESTful Web Services的开发者来说,JAX-RS给出了不同于JAX-WS...

    RESTful Java with JAX-RS 2.0

    JAX-RS 2.0作为该标准的更新版本,引入了新的注解和方法来支持RESTful服务的构建。从定义资源到处理HTTP请求,再到验证和国际化,JAX-RS 2.0提供了全面的支持。 《RESTful Java with JAX-RS 2.0》还可能讨论了实际...

    JAX-RS-FileUpload-Jersey-Example

    Jersey是Sun Microsystems开发的开源项目,它是JAX-RS规范的参考实现。它提供了一个全面的框架,包括处理器、过滤器、提供者、容器和扩展,帮助开发者快速构建高质量的RESTful服务。通过使用Jersey,我们可以方便地...

    jax-rs开发实例(bookkeeping)

    **JAX-RS 开发实例:Bookkeeping** JAX-RS,全称为Java API for RESTful Web Services,是Java平台上的一个标准,用于构建RESTful Web服务。它为开发人员提供了一种简单、直观的方式来创建Web服务,这些服务可以...

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    1. 创建JAX-RS服务类:使用JAX-RS注解定义资源和操作。 2. 配置Spring:定义服务bean,并设置其在Spring上下文中的行为。 3. 配置CXF:在web.xml中添加CXF Servlet或监听器,指定Spring配置文件。 4. 打包和部署:将...

    JAX-RS Rest RestLet项目源码

    **JAX-RS与RESTful服务** JAX-RS(Java API for RESTful Web Services)是Java平台上的一个标准,用于构建RESTful Web服务。它提供了API,使得开发者能够轻松地创建、读取、更新和删除(CRUD)资源,这些操作在Web...

Global site tag (gtag.js) - Google Analytics