在上篇文章的末尾,我提到资源的设计有一点问题,增加客户的功能应该放到Customers resource而不是Customer Resource。本文首先会改正这个问题。
首先把创建Customer的代码从Customer Resource移到Customers Resource,另外创建一个查询所有customer的get方法,代码如下:
public class CustomersResource extends Resource {
private CustomerDAO customerDAO;
@Override
public void init(Context context, Request request, Response response) {
super.init(context, request, response);
}
public CustomersResource(){
getVariants().add(new Variant(MediaType.TEXT_PLAIN));
}
public CustomersResource(Context context, Request request, Response response) {
super(context, request, response);
getVariants().add(new Variant(MediaType.TEXT_PLAIN));
}
@Override
public Representation represent(Variant variant) {
List<Customer> list = customerDAO.getAllCustomers();
Representation representation = new StringRepresentation("", MediaType.TEXT_PLAIN);
return representation;
}
@Override
public boolean allowPut() {
return true;
}
@Override
public void storeRepresentation(Representation entity) throws ResourceException {
Form form = new Form(entity);
Customer customer = new Customer();
customer.setName(form.getFirstValue("name"));
customer.setAddress(form.getFirstValue("address"));
customer.setRemarks("This is an example which receives request with put method and save data");
customerDAO.saveCustomer(customer);
}
public void setCustomerDAO(CustomerDAO customerDAO) {
this.customerDAO = customerDAO;
}
}
在Spring配置文件定义一个Customers resource bean,并修改URL映射部分:
<bean id="restRoute" class="org.restlet.ext.spring.SpringRouter">
<property name="attachments">
<map>
<entry key="/customers">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="createResource" bean="customersResource" />
</bean>
</entry>
<entry key="/customers/{customerId}">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="createResource" bean="customerResource" />
</bean>
</entry>
</map>
</property>
</bean>
<bean id="customersResource" class="com.infosys.restlet.resource.CustomersResource" scope="prototype">
<property name="customerDAO" ref="customerDAO" />
</bean>
在CustomerResourceTest中修改测试方法:
public static void testStoreRepresentation(){
Client client = new Client(Protocol.HTTP);
Reference itemsUri = new Reference("http://localhost:8080/restlet/resources/customers");
Form form = new Form();
form.add("name", "Ajax");
form.add("description", "test store presentation");
Representation rep = form.getWebRepresentation();
Response response = client.put(itemsUri, rep);
assertTrue(response.getStatus().isSuccess());
}
分享到:
相关推荐
"restlet-jee-2.0.9.zip"是RESTlet-jee-2.0.9的源代码或者库文件,可能包含了所需的jar包、文档和其他资源,用于在项目中直接引用或进行二次开发。 总的来说,RESTlet-jee-2.0.9自用.rar这个压缩包是一个关于使用...
RESTlet提供了一种模型-视图-控制器(MVC)的设计模式,使得服务端代码更易于理解和维护。通过使用RESTlet,开发者可以直接与HTTP协议交互,包括处理请求方法(GET, POST, PUT, DELETE等)和HTTP头信息。 **JAX-RS...
在“chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.rar”压缩包中,包含的是Restlet Client的扩展文件“chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.crx”。 Restful API是现代Web服务的...
restlet-client 谷歌插件 接口调试 最新
Restlet是一个开源框架,专为构建RESTful Web服务和应用程序设计。REST(Representational State Transfer)是一种轻量级的架构风格,广泛应用于Web服务和API的设计,强调资源的表示和状态转移。Restlet JEE 2.0.3是...
总的来说,Restlet Client v2.8.0.1是针对REST API开发和测试的重要辅助工具,尤其适合前端开发者、API接口设计者和系统集成人员使用。其易用性和强大的功能使它在同类工具中脱颖而出,能够有效地帮助用户测试和优化...
标题 "nexus-restlet1x-plugin-2.6.1-01.zip" 提供的信息表明,这是一个与 Nexus 服务器相关的插件,具体是 Restlet 1.x 版本的插件,版本号为 2.6.1-01。Nexus 是一个流行的 Maven 和 Nexus Repository Manager 的...
Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务;而且,事实证明它自从2005年诞生之时起,就是一个可靠的软件。 ...
标题 "camel-restlet-spring-web-app" 暗示了一个基于Apache Camel、Restlet和Spring Web的应用程序示例,该示例使用Jetty作为嵌入式服务器。这个项目结合了这些技术来创建一个RESTful API服务。让我们深入探讨每个...
"chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.zip" 是一个针对 Chrome 浏览器的扩展程序包,主要用于 REST API 的测试。Restlet Client 是一个强大的工具,它使得开发者和测试人员能够轻松地进行 ...
标题中的"restlet-j2ee-2.0.15.rar"指的是Restlet框架的一个特定版本,即2.0.15,适用于Java EE平台。这个压缩包可能包含了该版本的源代码、JAR文件、文档、示例以及相关的配置文件,供开发者在J2EE环境下集成和使用...
"restlet-jee-2.2.2"是Restlet框架的一个特定版本,适用于Java EE环境。这个版本的发布旨在为Java EE开发者提供一个高效且灵活的工具,用于构建符合REST原则的应用程序。以下是关于Restlet和其在Java EE中的应用的...
在"restlet-jse-2.1.2"这个压缩包中,我们主要关注的是Restlet框架针对Java标准版(Java SE)的实现。版本号"2.1.2"表明这是一个特定的稳定版本,可能包含了之前版本的改进和修复。 Restlet框架的核心组件包括以下...
Chrome插件Restlet Client - REST API Testing是一款非常实用的工具,专为Web API的调试和测试设计。这款插件支持多种HTTP方法(如GET、POST、PUT、DELETE等),并提供了丰富的功能,使得API测试过程更加高效和便捷...
标题"restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest"表明这是一个针对Java企业版(Java EE)的Restlet框架2.0.6版本的压缩包,其中包含了与org.restlet相关的组件。 描述中的"restlet框架所需...
1. **库文件**:包括JAR文件,如`restlet-api.jar`、`restlet-engine.jar`等,这些是Restlet框架的核心组件,提供了处理HTTP请求、响应、资源和组件的基本类和接口。 2. **文档**:可能包含API文档(如Javadoc),...
这个依赖包含了三个关键的JAR文件:`sqoop-1.4.6.2.3.99.0-195.jar`,`org.restlet-2.4.3.jar`以及`org.restlet.ext.servlet-2.4.3.jar`。下面我们将详细探讨这三个组件及其在IT领域的应用。 首先,让我们来看一下`...
Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务;而且,事实证明它自从2005年诞生之时起,就是一个可靠的软件。 ...
1. **安装DHC**: 通过访问链接<https://chrome.google.com/webstore/detail/restlet-client-dhc-rest-api/aejoelaoggembcahagimdiliamlcdmfm>,将DHC添加到Chrome或Firefox浏览器。 2. **创建请求**: 在DHC界面中...
"Restlet-JSE"是一个基于Java的开源框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种轻量级的、架构风格的网络应用程序设计方法,它强调资源的表述和状态转移,通常用于构建高效、...