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
類和資源方法的@Path(在包javax.ws.rs 中)聲明都是必要的,聲明的是一個相對路徑,根路徑,類所聲明的路徑,方法所聲明的路徑拼接在一起構成了通路某個resource的一個url。(也就是說,通路這個url,服務端就會自動觸發該事件)
包javax.ws.rs 中可以有各種的http 請求方式的聲明,例如@GET,@POST,@PUT,@DELETE,@HEAD.你可以把某一特定的請求方式放在public方法之上,你如果你在你的類上有@path的聲明,那麼在方法上的path聲明并不是必須的,但前提是你能夠通過不同的http請求來區分不同的方法,這樣服務端才能明白你所請求的是那一個資源(方法)。
如果一個方法是隻有@Path的聲明,而沒有http請求方式的聲明,那麼該方法被稱為JAXRSResourceLocators(我覺得作者表達的意思是如果有@Path的聲明的方法叫做JAXRSResourceLocators)
@Path的聲明并不是僅僅簡單的路徑表達式。你可以插入正規表達式。例如
下邊的get請求将會對應被引導至getResource()方法上
GET /resources/stuff
GET/resources/foo/stuff
GET/resources/on/and/on/stuff
表達式的規則是
"([]*)"
例如
@Path("/resources/{var}/stuff")
将會會和如下的路徑比對
GET/resources/bar/stuff
但是,和該路徑是不比對的
GET/resources/a/bunch/of/stuff
(其實,也就是指明的正規表達式說明了該部分的路徑應該符合什麼樣的規則。如果是預設的化,當然,你可以大緻了解一下正規表達式)
本文轉自HDDevTeam 51CTO部落格,原文連結:http://blog.51cto.com/hddev/696869,如需轉載請自行聯系原作者