免费创建网站带咨询的,网站配置域名,泰安网站优化,创业平台appJAX-RS概述#xff08;第1部分#xff09; JAX-RS API构成Java EE平台承诺提供标准驱动技术的重要组成部分。 互联网无处不在的性质以及对微服务体系结构的日益增长的兴趣已将更多的精力放在小型可扩展的自治服务及其互操作性上。 允许微服务彼此之间以及“外部世界”之间进行… JAX-RS概述第1部分 JAX-RS API构成Java EE平台承诺提供标准驱动技术的重要组成部分。 互联网无处不在的性质以及对微服务体系结构的日益增长的兴趣已将更多的精力放在小型可扩展的自治服务及其互操作性上。 允许微服务彼此之间以及“外部世界”之间进行通信的主要方法是REST它在开发RESTful API中的用途以及Java EE为此提供的技术是JAX-RSRESTful Web Services的Java API 。 JAX-RS的目标 JAX-RS API的目标是 基于POJO 提供与POJO一起使用的类/接口和相关批注的集合以将其公开为Web资源。 以HTTP为中心 要将HTTP用作基础网络协议并在HTTP和URI元素以及相应的API类和注释之间提供清晰的映射。 格式独立 适用于各种HTTP实体主体内容类型并提供必要的可插入性以允许添加其他类型。 容器独立性 为了确保使用该API的工件可以部署在一系列Web服务器中。 包含在Java EE中 允许在Web资源类中使用Java EE功能和组件。 JAX-RS注释概述 JAX-RS API中的注释用于在Web资源周围提供元数据。 一个典型的示例是将GET注释与Path注释一起使用以标识应处理对Path注释中的指定URI的GET请求的方法。 接下来是对标记的快速概述这些标记可用于标记用于构造Web资源的方法和类。 这不是一个详尽的列表JAR-RS军械库中还有更多注释但是由于JAX-RS的大部分工作是在配置和处理Web资源中因此您可以在其中找到大部分已使用的API批注。 这是由三部分组成的系列文章中的第一个介绍JAX-RS批注的文章。 第二部分介绍 Path注释和PathParam QueryParamter批注 Produces批注 Consumes批注 第三部分介绍 FormParam批注 MatrixParam批注 CookieParam批注 HeaderParam批注 Provider批注 让我们开始吧。 ApplicationPath批注 让我们从具有ApplicationPath批注的树的顶部开始 ApplicationPath(/api)
public class RESTConfig extends Application {} 从这里开始定义资源的URI。 在这里我们说所有的资源都可以在/ api根目录下找到。 该URL应该如下所示 http// localhost8080 / webcontext / api / 其中webcontext是应用程序的名称。 Path注释 接下来是资源的URI路径。 在书店应用程序中它可能是/ books / 。 Path(/books)
public class BookResource {} 现在书籍资源的URI为/ api / books URL为http// localhost8080 / webcontext / api / books。 按照惯例将资源命名为名词和复数形式。 一旦定义了我们的资源路径就为HTTP方法和上下文类型配置了单独的资源方法。 这就是乐趣的开始。 每个HTTP方法都有一个注释。 GET HTTP方法注释 具有GET批注的方法批注响应HTTP get请求。 GET
Produces(MediaType.APPLICATION_JSON)
public Response getAllBooks() {ListBook books BookRepository.getAllBooks(); // queries database for all booksGenericEntityListBook list new GenericEntityListBook(books) {};return Response.ok(list).build();
} 请注意 GenericEntity包装器用于将List的通用类型维护为Book。 POST HTTP方法注释 带有POST注释的方法会响应POST方法的请求。 POST
Consumes(MediaType.APPLICATION_JSON)
Produces(MediaType.APPLICATION_JSON)
public Response saveBook(Book book) {book bookRepository.saveBook(book);return Response.ok(book).build();
} POST HTTP方法通常用于创建资源。 此示例代码将新书对象保留在数据库中。 PUT HTTP方法注释 PUT批注用于更新记录并以这种方式注释的方法响应HTTP PUT请求。 PUT
Consumes(MediaType.APPLICATION_JSON)
Produces(MediaType.APPLICATION_JSON)
public Response updateBook(Book book) {book bookRepository.updateBook(book);return Response.ok(book).build();
}DELETE HTTP方法注释 标有DELETE的方法应删除资源。 DELETE
Path({isbn})
Produces(MediaType.APPLICATION_JSON)
public Response deleteBook(PathParam(isbn) String isbn) {Book book bookRepository.deleteBookByIsbn(isbn);return Response.ok(book).build();
} 通常如本例所示资源或其ID从URI变量传递到资源方法参数。 OPTIONS HTTP方法注释 用OPTIONS注释的方法响应HTTP Option请求。 OPTIONS
public Response preflight() {return Response.ok().header(Allow, true).build();
} 当客户端希望向其他域发出复杂的HTTP请求时将options方法用作请求。 这样做是为了确定是否允许客户端提出请求。 HEAD HTTP方法注释 HTTP HEAD方法与HTTP GET方法相同除了服务器不得在响应中使用正文进行响应。 HEAD
public Response headsUp() {return Response.ok().build();
} 此方法用于获取有关实体的元数据而无需发回实体主体本身。 代码库 本文的源代码位于我的GitHub存储库中 。 我所有文章的代码都在ReadLearnCode文章存储库中。 接下来是什么 就是第一部分接下来是第二部分您将在其中了解有关用于制作RESTful Web端点的注释的更多信息。 进一步阅读 我已经发布了更多有关JAX-RS的文章希望您对此感兴趣 JAX-RS 资源实体是有关创建资源实体的文章 是否曾经想过 javax.ws.rs.core.Context 批注是关于什么的 了解有关Consumes和Produces批注的更多信息最后 您不能在不了解bean验证失败管理的情况下编写健壮的端点 翻译自: https://www.javacodegeeks.com/2017/08/jax-rs-annotations.html