jax-rs jax-ws_什么是JAX-RS注释? (第2部分)
jax-rs jax-ws
JAX-RS注釋概述(第2部分)
這是一個由三部分組成的系列,介紹了用于實現(xiàn)REST端點的注釋。
在JAX-RS注釋的第一部分中,您了解了:
- @ApplicationPath批注
- @Path注釋
- @GET ? HTTP方法注釋
- @POST HTTP方法注釋
- @PUT HTTP方法注釋
- @DELETE HTTP方法注釋
- @OPTIONS HTTP方法注釋
- @HEAD HTTP方法注釋
在這一部分中,您將了解有關JAX-RS批注的更多信息。 準備好了嗎?讓我們開始吧。
再次使用@Path注釋和@PathParam
我確信您已經(jīng)注意到@Path批注可用于resource方法,以進一步完善資源的位置。 在上面的示例中,路徑被指定為@Path(“isbn”) 。 這稱為路徑變量,這意味著當對URI /api/books/1234發(fā)出請求時,將檢索路徑變量1234并將其分配給標有@PathParam批注的方法參數(shù)。 因此,在代碼段中,將值1234分配給了變量isbn 。
@Path("{isbn}") public Response aMethod(@PathParam("isbn") String isbn)因此,在代碼段中,將值1234分配給了變量isbn 。
@QueryParamter批注
查詢參數(shù)是與?后面附加到URL的鍵/值對關聯(lián)的值? 符號。 例如,在URL http://localhost:8080/api/books/search? keyword=Java&limit=10 http://localhost:8080/api/books/search? keyword=Java&limit=10 ,查詢參數(shù)是keyword和limit ,查詢值是Java和10 。 要獲取這些值,請使用@QueryParam批注,并將查詢參數(shù)的名稱作為值傳遞給批注,然后在resource方法中為響應對URI資源/ books / search的請求的方法參數(shù)進行批注。
@GET @Produces(MediaType.APPLICATION_JSON) @Path("search") public Response searchBook(@QueryParam("keyword") String keyword, @QueryParam("limit") int limit) {List<Book> books = bookRepository.searchBook(keyword, limit);return Response.ok(new GenericEntity<List<Book>>(books) {}).build(); }在上面的代碼段中,將keyword查詢參數(shù)的值分配給方法參數(shù)keyword ,將limit查詢參數(shù)的值分配給limit方法參數(shù)。
@Produces批注
@Produces批注指定方法返回給調(diào)用方的媒體類型。
@GET @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public Response getAllNewBooks() {return Response.ok(new GenericEntity<List<Book>>(bookRepository.getAllNewBooks()) {}).build(); }getAllNewBooks方法能夠以JSON或XML格式返回所有書籍的列表。 或者,媒體類型可以表示為字符串: “ application / json”和“ application / xml” 。
@Produces({"application/json", "application/xml"})@Consumes批注
方法可以使用的媒體類型可以通過注釋@Consumes指定。
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})該類型也可以指定為字符串值: “ application / json ”和“ application / xml ” 。
代碼庫
本文的源代碼位于我的GitHub存儲庫中 。 我所有文章的代碼都在ReadLearnCode文章存儲庫中。
接下來是什么?
第二部分就是這樣,接下來是這個三部分系列的最后一部分。 您將了解有關更高級的注釋的更多信息,這些注釋有助于構建RESTful端點,包括:
- @FormParam批注
- @MatrixParam批注
- @CookieParam批注
- @HeaderParam批注
- @Provider批注
進一步閱讀
我已經(jīng)發(fā)表了更多有關JAX-RS的文章,希望您對此感興趣:
- JAX-RS 資源實體是有關創(chuàng)建資源實體的文章
- 是否曾經(jīng)想過@ javax.ws.rs.core.Context 批注是關于什么的?
- 了解有關@Consumes和@Produces批注的更多信息,最后
- 您無法在不了解Bean驗證失敗管理的情況下編寫健壯的端點
翻譯自: https://www.javacodegeeks.com/2017/08/jax-rs-annotations-part-2.html
jax-rs jax-ws
總結
以上是生活随笔為你收集整理的jax-rs jax-ws_什么是JAX-RS注释? (第2部分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暴雪被黑客攻击(暴雪ddos攻击原因)
- 下一篇: 2019 java值得学吗_Java认证