zoukankan      html  css  js  c++  java
  • 使用 @Path and @GET, @POST, 等

    RESTEasy 系列 Chapter 4 使用 @Path and @GET, @POST, 等

    @Path("/library")
    public class Library {
     
        @GET
        @Path("/books")
        public String getBooks() {...}
     
        @GET
        @Path("/book/{isbn}")
        public String getBook(@PathParam("isbn") String id) {
            // search my database and get a string representation and return it
        }
     
        @PUT
        @Path("/book/{isbn}")
        public void addBook(@PathParam("isbn") String id, @QueryParam("name") String name) {...}
     
        @DELETE
        @Path("/book/{id}")
        public void removeBook(@PathParam("id") String id {...}
     
     
    }

    比方说,如果你拥有Resteasy的servlet配置并且得到一个根路径http://myhost.com/services。

    Library类的请求将被处理:

    • 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

    @javax.ws.rs.Path注解必须存在于类和/或资源方法。如果类和方法都存在,这个资源方法的相对路径是连接类和方法。

    在@javax.ws.rs包注解的每个HTTP方法,@GET, @POST, @PUT, @DELETE, 和 @HEAD。你可以将这些公共方法映射到某些想要的HTTP方法。只要有一个@Path注解在类上,你要映射的方法不用再有@Path注解。你可以有一个以上的HTTP方法,只要它们能区别于其它的方法。

    当你有一个@Path注解的不是HTTP的方法,它们被叫做JAXRSResourceLocators。

    4.1. @Path和正则表达式映射

    @Path 注解不限于简单的路径表达式。你也能够插入正则表达式到@Path的value。示例:

    @Path("/resources)
            public class MyResource {
     
            @GET
            @Path("{var:.*}/stuff")
            public String get() {...}
            }

    下面的GET方法将路由到getResource()方法:

    GET /resources/stuff
    GET /resources/foo/stuff
    GET /resources/on/and/on/stuff

    表达式的格式是:

    "{" variable-name [ ":" regular-expression ] "}"
     

    正则表达式部分是可选的。当表达式不提供时,它默认为一个通配符匹配特定的部分。在正则表达式条件下,这个表达式默认为是:

    "([]*)"

    示例:

    @Path("/resources/{var}/stuff")

    将匹配它们:

    GET /resources/foo/stuff 
    GET /resources/bar/stuff

    但是不能匹配:

    GET /resources/a/bunch/of/stuff

  • 相关阅读:
    解压tar.gz文件报错gzip: stdin: not in gzip format解决方法
    通过 HTTP 头进行 SQL 注入(转)
    Android涉及到的设计模式(转)
    初探Java8中的HashMap(转)
    substance的使用示例(转)
    大数据量下高并发同步的讲解(不看,保证你后悔)(转)
    HDU 4812 D Tree 树分区+逆+hash新位置
    在weblogic11g发布该项目时遇到错误(不支持web-app_3_0)
    highchart几个图表马金摘要
    android 使用 service 实现音乐
  • 原文地址:https://www.cnblogs.com/myitmylife/p/3617153.html
Copyright © 2011-2022 走看看