• @javax.ws.rs Webservice注解



    1,依赖:

    <!-- webService -->
    <dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0.1</version>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>

    <dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    </dependency>
     

    2.路径
    @javax.ws.rs.Path
    标识要请求的资源类或资源方法的uri路径。
    例,@Path("animal"),表示下一层路径是animal时要处理的事务。
    @Path("{species}")这种带大括号的表示方法,表示下一层路径会被参数化,配合@PathParam("species")使用可以赋值给函数的参数。

    对于代码:

        @Path("animal")
        public class Animal {
            public String species,name;
            public int age;
            public static Animal animal=new Animal();
            
            @GET
            @Path("{species}")
            @Produces(MediaType.APPLICATION_JSON)
            public Animal wsAnimal(@PathParam("species") String species,
                    @QueryParam("name") String name,
                    @QueryParam("age") int age
                    ){
                animal.species=species;
                animal.name=name;
                animal.age=  age==0?2:age;
                return animal;
            }
        }


    效果见图1-1:


    图 1-1 @Path 用法示例


    2.从报文数据到方法参数

    @javax.ws.rs.PathParam
    将uri中指定的路径参数绑定到资源方法参数,资源类的字段,或资源类的bean属性。

    @javax.ws.rs. QueryParam

    将http请求的Query参数赋值给函数的参数。

    @javax.ws.rs.DefaultValue

    设置@QueryParam参数的默认值。如果@QueryParam没有接收到值,就使用默认值。比如:

    public String fun(@DefaultValue("description") @QueryParam("desc") String desc){...}

    @javax.ws.rs. FormParam

    将http请求的Form表单中的参数赋值给函数的参数。

    @avax.ws.rs.Context

    用于获取环境信息。一个获取客户端ip的例子见下:

        @Path("util")
        public class Util {
            
            @Path("getClientIp")
            @GET
            @Produces(MediaType.TEXT_PLAIN)
            public String getClientIp(@Context HttpServletRequest request){
                return request.getRemoteAddr();
            }
        }


    3.http方法

    @javax.ws.rs.GET
    表示此方法响应一个HTTP GET请求。

    @javax.ws.rs.POST
    表示此方法响应一个HTTP POST请求。

    @javax.ws.rs.PUT

    通常用来更新数据。

    @javax.ws.rs.DELETE

    通常用来删除数据。
    4.返回数据类型

    @javax.ws.rs.Produces
    设置Http返回报文,报文体的内容类型。
    取值为 javax.ws.rs.core.MediaType.XXX。常用的有:

    MediaType.APPLICATION_JSON
    MediaType.TEXT_PLAIN

    --------------------------------------------------------------------

    补充:

    @GET
    @Path("/tokens")
    public Response uploadFile(@QueryParam("appkey")String appkey,
    @QueryParam("timestamp")Long timestamp,
    @QueryParam("signature")String signature){
    if (StringUtils.isEmpty(signature)||!appkeyCheck(appkey,pcsecretkey,timestamp).equals(signature)){
    return Response.ok(com.sgm.epics.common.util.Response.newInstance().fail(HttpStatus.NO_CONTENT,"错误")).build();
    }
    return Response.ok(com.sgm.epics.common.util.Response.newInstance().fill(sgmFileService.getToken(appId))).build();
    }






    @GET
    @Path("/load/{name}")
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public Response getPicture(@Context HttpServletRequest request,@PathParam("name") String name){
    String appkey = request.getParameter("appkey");
    String timestamp = request.getParameter("timestamp");
    String signature = request.getParameter("signature");
    String token = request.getParameter("token");
    。。。。。。。。。。。。。。。
    @Produces(MediaType.APPLICATION_JSON)


    ————————————————
    原文链接:https://blog.csdn.net/chuchus/article/details/45008277

  • 相关阅读:
    webpack4+vue 打包 就是没效果?求解!!!
    Vue.js——6.创建组件
    Vue.js——5.生命周期
    Vue.js——4.指令 笔记
    Vue.js——3.增删改查
    Vue.js——2.第一个Vue程序
    Vue.js——1.初识Vue
    Codeforces 1285D Dr. Evil Underscores
    Codeforces 437B The Child and Set
    ZhongHaoxi P105-3 洗衣
  • 原文地址:https://www.cnblogs.com/yangsanluo/p/14893279.html
Copyright © 2020-2023  润新知