使用 @Path and @GET, @POST, 等

RESTEasy 系列 Chapter 4 使用 @Path and @GET, @POST, 等html

 

@Path("/library")
public class Library {
 
    @GET
    @Path("/books")
    public String getBooks() {...}
 
    @GET
    @Path("/book/{isbn}")
    public String getBook(@PathParam("isbn") String id) {
        // search my database and get a string representation and return it
    }
 
    @PUT
    @Path("/book/{isbn}")
    public void addBook(@PathParam("isbn") String id, @QueryParam("name") String name) {...}
 
    @DELETE
    @Path("/book/{id}")
    public void removeBook(@PathParam("id") String id {...}
 
 
}

 

 

比方說,若是你擁有Resteasy的servlet配置而且獲得一個根路徑http://myhost.com/services。java

 

Library類的請求將被處理:正則表達式

  • GET http://myhost.com/services/library/books
  • GET http://myhost.com/services/library/book/333
  • PUT http://myhost.com/services/library/book/333
  • DELETE http://myhost.com/services/library/book/333

@javax.ws.rs.Path註解必須存在於類和/或資源方法。若是類和方法都存在,這個資源方法的相對路徑是鏈接類和方法。express

在@javax.ws.rs包註解的每一個HTTP方法,@GET, @POST, @PUT, @DELETE, 和 @HEAD。你能夠將這些公共方法映射到某些想要的HTTP方法。只要有一個@Path註解在類上,你要映射的方法不用再有@Path註解。你能夠有一個以上的HTTP方法,只要它們能區別於其它的方法。htm

當你有一個@Path註解的不是HTTP的方法,它們被叫作JAXRSResourceLocators。blog

 

4.1. @Path和正則表達式映射資源

 

@Path 註解不限於簡單的路徑表達式。你也可以插入正則表達式到@Path的value。示例:路由

 

@Path("/resources)
        public class MyResource {
 
        @GET
        @Path("{var:.*}/stuff")
        public String get() {...}
        }

 

 

下面的GET方法將路由到getResource()方法:rem

GET /resources/stuff
GET /resources/foo/stuff
GET /resources/on/and/on/stuff

 

表達式的格式是:get

"{" variable-name [ ":" regular-expression ] "}"
 

正則表達式部分是可選的。當表達式不提供時,它默認爲一個通配符匹配特定的部分。在正則表達式條件下,這個表達式默認爲是:

 

"([]*)"

 

 

示例:

@Path("/resources/{var}/stuff")

將匹配它們:

 

GET /resources/foo/stuff 
GET /resources/bar/stuff

 

 

可是不能匹配:

GET /resources/a/bunch/of/stuff
相關文章
相關標籤/搜索