JAX-RS (JSR 311/339) 讓開發者以註解方式快速構建遵循 REST 架構的 Web 服務。核心概念:資源由 URI 識別,透過 HTTP 統一介面 (GET/PUT/POST/DELETE) 操作資源。
@Path:資源相對路徑@GET、@POST、@PUT、@DELETE:對應 HTTP 方法@Produces、@Consumes:指定請求/回應 MIME 型別 (如 MediaType.APPLICATION_XML)@Context 注入 UriInfo、HttpHeaders 等UriBuilder、Response、Response.ResponseBuilder:構建 URI 與回應@Path("items")
@Produces(MediaType.APPLICATION_XML)
public class ItemsResource {
@Context UriInfo uriInfo;
@GET
public Items listItems() { return allItems(); }
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response create(Item item) {
Item newItem = createItem(item);
URI newItemURI = uriInfo.getRequestUriBuilder().path(newItem.getId()).build();
return Response.created(newItemURI).build();
}
}
方法層級 @Produces 可覆蓋類別層級設定。JAX-RS 自動處理 JAXB 註解物件的 XML/JSON 轉換,POJO 需自行實作 MessageBodyReader/Writer。
@QueryParam、@MatrixParam、@HeaderParam、@CookieParam 從 URL、Header、Cookie 取得參數。實用類別隱藏 HTTP 程式複雜度,簡化多類型 Web 應用開發(如檢查 HTTP Header)。