zoukankan      html  css  js  c++  java
  • Chapter 3. Using @Path and @GET, @POST, etc.

    3.1. @Path and regular expression mappings
    @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 {...}
    
       
    }
    
    If you have the RESTEasy Servlet configured and reachable at a root path of http://myhost.com/services, the requests would be handled by the Library class:
    • 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
    The @javax.ws.rs.Path annotation must exist on either the class or a resource method, or both. If it exists on both the class and method, the relative path to the resource method is a concatenation of the class and method.
    The @javax.ws.rs package contains annotations for each HTTP method. @GET@POST@PUT@DELETE, and @HEAD. Place these annotations on public methods that you want to map to the annotation's HTTP method. If a @Path annotation exists on the class, you do not need to annotate the method you wish to map with @Path. Multiple HTTP methods can be used, as long as they can be distinguished from other methods.
    When a method is annotated with @Path without a HTTP method being applied, the annotated method is referred to as a JAXRSResourceLocator.

    3.1. @Path and regular expression mappings

    The @Path annotation is not limited to simple path expressions. You can also insert regular expressions into the value of @Path. For example:
    @Path("/resources)
    public class MyResource {
    
       @GET
       @Path("{var:.*}/stuff")
       public String get() {...}
    }
    
    The following GETs will route to the getResource() method:
    GET /resources/stuff
    GET /resources/foo/stuff
    GET /resources/on/and/on/stuff
    
    The format of the expression is:
    "{" variable-name [ ":" regular-expression ] "}"
    
    Here, regular-expression is optional. Where this is not provided, the expression defaults to a wildcard matching of one particular segment, like so:
    "([]*)"
    
    For example:
    @Path("/resources/{var}/stuff")
    
    will match these:
    GET /resources/foo/stuff
    GET /resources/bar/stuff
    
    but will not match:
    GET /resources/a/bunch/of/stuff

    转自:https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Web_Platform/5/html/RESTEasy_Reference_Guide/Using__Path_and__GET___POST__etc..html
  • 相关阅读:
    1388:Lake Counting
    1253 Dungeon Master
    Ubuntu18.04下可以完美运行Quake3 Arena
    Windows下python3生成UTF8的CSV文件和sha256sum踩坑记录
    ROM后缀含义
    Ubuntu18.04下的模拟神器RetroArch
    廉价的SUP掌机拆解
    Python3连接MySQL
    Ubuntu18.04的网络管理netplan和防火墙ufw
    Ubuntu18.04命令行连接WiFi
  • 原文地址:https://www.cnblogs.com/wangqianbo/p/3567004.html
Copyright © 2011-2022 走看看