美文网首页
Jersey restful 注解使用说明

Jersey restful 注解使用说明

作者: _Hatake_Kakashi | 来源:发表于2019-03-15 15:24 被阅读0次

    一,声明http请求的请求方式

    @GET
    GET请求(读取/列出/检索单个或资源集合。)
    @POST
    POST请求(新建资源。)
    @PUT
    PUT请求(更新现有资源或资源集合。)
    @DELETE
    DELETE请求(删除资源或资源集合。)

    二,@Produces,@Consumes

    @Consumes

    用来指定可以接受client发送过来的MIME类型,同样可以用于class或者method,也可以指定多个MIME类型,一般用于@PUT,@POST

    @Produces

    用来指定将要返回给client端的数据标识类型(MIME)。@Produces可以作为class注释,也可以作为方法注释,方法的@Produces注释将会覆盖class的注释

    三,请求参数注释

    @PathParam

    用于获取url中直接在斜杠后面添加参数值

    @DELETE
    @Path("/mqHosts/{mqId}/queues/{queueId}")
    @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
    @ApiOperation(value = "删除MQ主机下的一个队列")
    public Object deleteMqQueue(@Context HttpServletRequest request,
                                    @PathParam("mqId") String mqId,
                                    @PathParam("queueId") String queueId) {}
    // url /mqHosts/1/queues/2    
    // mqId=1,queueId=2
    

    @QueryParam

    用于获取url中在后面添加【键值对】形式的参数

    @GET
        @Path("/interfaceLimits")
        @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
        @ApiOperation(value = "查询租户所有计费接口的计费规则")
        public Object getAllInterfaceLimitsByTenantId(@Context HttpServletRequest request,
                                                      @QueryParam("tenantId") String tenantId) {
    // url /interfaceLimits?tenantId=1
    // tenantId=1
    

    @Context:

    该注解用来解析上下文参数。(@Context HttpRequest request)

    @FormParam

    客户端以form(MIME为application/x-www-form-urlencoded)的方式提交表单,服务端使用@FormParam解析form表单中的参数

    @FormDataParam

    通常在上传文件的时候,需要@FormDataParam。客户端提交form(MIME为multipart/form-data)的方式提交表单,服务端使用

    @FormDataParam

    来解析form表单中的参数

    @HeaderParam

    获取http请求头中的参数值

    @CookieParam

    获取http请求头中cookie中的参数值

    @MatrixParam

    获取请求URL中的参数中的键值对,必须使用“;”作为键值对的分隔符,比如/person/1;id=1;name=bella;age=22。除此之外呢,@MatrixParam可以接受List参数,尤其是在键值对key相同的时候,就会被解析为List

    @DefaultValue

    @DefaultValue配合@PathParam、@QueryParam、@FormParam、@FormDataParam、@MatrixParam、@HeaderParam、@CookieParam等使用,如果请求指定的参数中没有值,就使用@DefaultValue中的值为默认值。注意:@DefaultValue指定的值在解析过程中出错(比如@DefaultValue("test") @QueryParam("age") int age),将返回404错误。

    @BeanParam

    如果传递的参数较多,可以自己写个bean,bean中的字段使用@PathParam、@QueryParam、@FormParam、@FormDataParam、@MatrixParam、@HeaderParam、@CookieParam来注解。而在resouces中具体方法参数中就可以使用@BeanParam来注解这个自定义的bean

    @Encoded

    禁止解码,客户端发送的参数是什么样,服务器接收到的参数就是什么样

    四,@Path

    @Path有两个作用:
    标注class,表明该类是个资源类。凡是资源类,必须使用@Path注解,不然jersey无法扫描到该资源类。
    标注method,表示具体的请求资源的路径
    这点和Spring的@RequestMapping不同,@RequestMapping只是简单的注解请求路径而已,@Controller才是表明该类是个action,而@Path一人扮演两个角色

    相关文章

      网友评论

          本文标题:Jersey restful 注解使用说明

          本文链接:https://www.haomeiwen.com/subject/lxtrmqtx.html