This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

JAX-RS 支持

Restlight支持了JAX-RS的使用习惯,你可以按照JAX-RS的方式使用Restlight

引入依赖

<dependency>
	<groupId>io.esastack</groupId>
	<artifactId>restlight-jaxrs-provider</artifactId>
	<version>${restlight.version}</version>
</dependency>

1 - JAX-RS 注解支持

支持的注解

  • @Path
  • @GET
  • @POST
  • @PUT
  • @DELETE
  • @HEAD
  • @PATCH
  • @OPTIONS
  • @Consumes
  • @Produces
  • @QueryParam
  • @PathParam
  • @HeaderParam
  • @MatrixParam
  • @CookieParam
  • @FormParam
  • @BeanParam
  • @DefaultValue

注解使用

@QueryParam, @PathParam,@HeaderParam,@MatrixParam, @MatrixVariable,@FormParam

参数绑不支持javax.ws.rs.ext.ParamConverterProvier扩展

个别注解说明

@QueryParam

除普通用法外, 当未指定value()或者name且参数对象为Map<String, List<String>类型时, 将整个ParameterMap(即AsyncRequest.getParameterMap)作为参数的值。

eg.

public void foo(@QueryParam Map<String, List<String> params) {
    //...
}

@CookieParam

普通String类型

public void foo(@CookieParam String c) {
    //...
}

Cookie对象(io.netty.handler.codec.http.cookie.Cookie)

public void foo(@CookieParam Cookie c) {
    //...
}

获取所有的Cookie

public void foo(@CookieParam Set<Cookie> cookies) {
    //...
}

@HeaderParam

除获取单个header之外, 可以如果参数类型为io.netty.handler.codec.http.HttpHeaders则以所有的Header作为参数的值

eg:

public void foo(@HeaderParam HttpHeaders headers) {
    //...
}