介绍:
In the first RESTEasy tutorial we have learnt the basics about REST Web services and we have tested a simple RESTful Web service. In this tutorial we will
show how to inject web application elements (form parameters, query parameters and more) into a RESTful Web service.
You can use the following annotations to bind HTTP requests to a RESTful web service:
@FormParam
@PathParam
@QueryParam
@HeaderParam
@CookieParam
@MatrixParam
Let's explore all the possible interactions.
@FormParam
The annotation @FormParam can be used to inject the parameters of a Web form into a RESTful Web service.
Here's an example:
Here we are submitting a POST request containing two parameters email and password which
are translated into the parameters "e" and "p" of the login method.
Here's the full example:
<form method="POST" action="login">
Email Address: <input type="text" name="email"><br>
Password: <input type="text" name="password">
<input type="submit">
</form>
@Path("/")
public class LoginService
{
@Path("login")
@POST
public String login(@FormParam("email") String e, @FormParam("password") String p) {
return "Logged with " + e + " " + p;
}
}
As an alternative, you can bind the parameters email and password at class level, which can be useful if you need to re-use the same parameters across different
methods of the service.
public class User {
@FormParam("email")
private String email;
@FormParam("password")
private String password;
}
You would need to modify the REST method accordingly:
@POST
@Path("login")
public String login(@Form User form) {
return "Logged with " + form.email + " " + form.password;
}
@PathParam
The @PathParam annotation binds the value of a path segment to a resource method parameter. For example, the following method would intercept an HTTP GET like http://server:port/login/12345 and
convert the PathParam "12345" into the String "id"
@Path("/")
public class LoginService
{
@GET
@Path("login/{zip}")
public String login(@PathParam("zip") String id) {
return "Id is " +id;
}
}
As for @FormParam, you can embed the @PathParam declaration at class level, if you prefer.
@QueryParam
The @QueryParam annotation binds the value of a path segment to a resource method parameter. For example, the following method would intercept an HTTP GET like http://server:port/login?zip=12345 and
inject the query parameter "zip" into the method parameter "zip"
@Path("/")
public class LoginService
{
@GET
@Path("login/{zip}")
public String login(@QueryParam("zip") String zip) {
return "Id is " +id;
}
}
QueryParam can be convenientely used with the DefaultValue annotation so that you can avoid a null pointer exception if no query parameter is passed.
@GET
@Path("login/{zip}")
public String login(@DefaultValue("11111") @QueryParam("zip") String zip) {
return "Id is " +id;
}
As for @FormParam, you can embed the @PathParam declaration at class level, if you prefer.
@HeaderParam
The @HeaderParam annotation extracts information from the HTTP header and binds it to a method parameter. Example:
@GET
public String callService(@HeaderParam("User-Agent") String whichBrowser) {
...
}
@CookieParam
The @CookieParam annotation reads an information stored as a cookie and binds it to a method parameter. Example:
@GET
public String callService(@CookieParam("sessionid") String sessionid) {
...
}
@MatrixParam
The @MatrixParam annotation can be used to bind an expression containing several property=value to a method parameter. For example, supposing you were to invoke an URL like http://server:port/login;name=francesco;surname=marchioni
@GET
public String callService(@MatrixParam("name") String name,
@MatrixParam("surname") String surname) {
...
}
另外:
http://www.soapui.org/REST-Testing/understanding-rest-parameters.html
http://docs.oracle.com/cd/E19226-01/820-7627/6nisfjmk8/index.html
原文地址:http://www.xuebuyuan.com/2129382.html
相关推荐
@PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam,分别标注方法的参数来自于HTTP请求的不同位置,例如@PathParam来自于URL的路径,@QueryParam来自于URL的查询参数,@HeaderParam...
RESTEasy 是一个流行的开源框架,用于在 Java 中实现 RESTful Web 服务。它是一个 JBoss 组织下的项目,基于 JAX-RS(Java API for RESTful Web Services)规范,使得开发人员能够轻松地创建符合 REST 原则的 HTTP ...
public List<User> getUsers(@CookieParam("session") String sessionId) { // 读取会话ID } } ``` #### 表单参数`@FormParam`与`@Form` `@FormParam`用于处理表单提交的数据,而`@Form`则可以用来处理整个表单...
入门构建此项目并将其安装到您的 Maven 存储库中: $ mvn install然后,您应该在应用程序的build.gradle或pom.xml添加对org.springframework.boot:spring-boot-resteasy:1.0.0.BUILD-SNAPSHOT的build.gradle 。...
此“resteasy:resteasy博客系列的示例文件和功能”项目,显然是一系列教程的配套资源,旨在帮助开发者更好地理解和应用RESTEasy框架。通过这个项目,我们可以深入学习RESTEasy的各种特性和用法。 首先,让我们从...
2. **注解驱动**:Resteasy支持多种JAX-RS注解,如`@Path`、`@PathParam`、`@QueryParam`、`@HeaderParam`、`@CookieParam`和`@FormParam`,用于处理HTTP请求的不同部分,如路径参数、查询参数、头信息和表单数据。...
- `@PathParam`, `@QueryParam`, `@HeaderParam`, `@CookieParam`, `@MatrixParam`, `@FormParam`:这些注解用于获取请求中的不同部分的数据,如URL参数、查询参数、头部信息等。 **配置RESTEasy** 在Web应用的`...
RESTEasy:RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。 JAX-RS: 是一套用java实现REST服务的规范。(全名...
手册中还包含了关于安全、资源外观、Matrix参数(@MatrixParam)、Cookie参数(@CookieParam)和表单参数(@FormParam)的详细章节,以及如何使用@DefaultValue注解来提供默认值,@Encoded注解和@Context注解来访问请求上...
@CookieParam `@CookieParam`用于读取和处理HTTP Cookie。 #### 11. @FormParam `@FormParam`用于处理表单数据,尤其是在POST请求中提交的数据。 #### 12. @Form `@Form`注解用于将整个表单数据绑定到方法参数...
- **@PathParam, @QueryParam, @HeaderParam, @CookieParam, @MatrixParam, @FormParam**:这些注解用于从请求的不同部分获取参数,如 URL 路径、查询参数、头信息、Cookie 等。 ## 配置 RESTEasy RESTEasy 的配置...
标题 "ahcj8-jetty-resteasy:异步 HTTP 客户端调用 kvish" 提到了一个关于使用 Jetty 和 RestEasy 进行异步 HTTP 客户端调用的项目。这个项目很可能是为了演示如何在 Java 环境中高效地处理网络请求,特别是利用 ...
### 十、@CookieParam 解释`@CookieParam`注解,用于访问和操作HTTP cookie中的数据。 ### 十一、@FormParam 探讨`@FormParam`注解,用于处理表单提交的数据,支持多种数据类型。 ### 十二、@Form 分析`@Form`注解...
《meteor-resteasy:Meteor应用程序的高效REST客户端》 在当今的Web开发中,RESTful API已经成为前后端分离架构中的重要一环。对于基于Meteor框架构建的应用程序,与REST API进行交互是实现数据交换的关键。而...
高枕无忧 RESTEasy是一个JBoss.org项目,旨在提供用于开发Java中的客户端和服务器RESTful应用程序和服务的生产力框架。 它主要是JAX-RS的实现,但是您可以在存储库中找到其他一些实验代码。 该项目页面可以在上找到...
RESTEasy是一款基于Java的开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。RESTful架构风格强调简洁、直接的交互方式,它提倡通过URI来定位资源,使用HTTP方法(如GET、POST、PUT、...
5. **参数绑定**:在方法参数上使用`@PathParam`、`@QueryParam`、`@HeaderParam`、`@CookieParam`等注解,可以从URL路径、查询字符串、HTTP头或Cookie中提取值,传递给方法。 6. **返回类型**:RestEasy支持多种...
2. **绑定参数**: 使用`@PathParam`、`@QueryParam`、`@HeaderParam`等注解将HTTP请求的参数绑定到方法参数。 3. **配置应用**: 配置应用服务器或者Servlet容器,添加RestEasy的依赖并注册RestEasy的Servlet或...
例如,`@RolesAllowed`用于权限控制,`@QueryParam`和`@PathParam`用于处理请求参数,`@HeaderParam`和`@CookieParam`则用于处理HTTP头和cookie。 3. **资源类(Resource Classes)**:在RESTEasy中,资源类是处理...
这通常通过注解来实现,例如`@QueryParam`、`@PathParam`、`@FormParam`等,它们帮助我们将HTTP请求参数映射到Java方法的参数。 在RESTfulExample这个项目中,我们可能会看到以下关键组件: 1. **资源类(Resource...