博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 @Path and @GET, @POST, 等
阅读量:6812 次
发布时间:2019-06-26

本文共 1708 字,大约阅读时间需要 5 分钟。

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/stuffGET /resources/foo/stuffGET /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

转载于:https://www.cnblogs.com/myitmylife/p/3617153.html

你可能感兴趣的文章
红帽收购混合云管理提供商NooBaa,混合云爆发节点临近!
查看>>
《F# Deep Dives》书评与作者问答
查看>>
InfoQ播客:Randy Shoup谈Stitch Fix的技术栈,数据科学和微服务架构
查看>>
ASP.NET Core提供模块化Middleware组件
查看>>
模拟黑客帝国效果2(canvas实验)
查看>>
OpenJDK9 Hotspot:Zero 解释器 初探
查看>>
JS中bind方法与函数柯里化
查看>>
调查显示:明年容器企业级用户将出现井喷式增长
查看>>
官方实锤!微软宣布以 75 亿美元收购 GitHub
查看>>
一个Java架构进阶必修体系图(只要思想不滑坡,方法总比困难多) ...
查看>>
MySQL 是如何解决幻读的
查看>>
Some methods of deep learning and dimensionality reduction
查看>>
天马行空脚踏实地,阿里巴巴有群百里挑一的天才应届生 ...
查看>>
「镁客早报」高通称若没有苹果订单无需每年升级芯片;小米进行第二次回购 ...
查看>>
生产实践Kafka与ELK
查看>>
Eclipse的PropertiesEditor切换大小写
查看>>
Android多线程源码详解一:handler、looper、message、messageQueue
查看>>
SaaS加速器II 能力中心:互利互补 共享商业红利
查看>>
病毒木马防御与分析实战
查看>>
分布式工作流任务调度系统Easy Scheduler正式开源
查看>>