`
ajax
  • 浏览: 253672 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Restlet实战(六)-正确设计资源

    博客分类:
  • REST
阅读更多

在上篇文章的末尾,我提到资源的设计有一点问题,增加客户的功能应该放到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());
	}

 

 

 

分享到:
评论
2 楼 ajax 2009-07-22  
nocohol 写道
我觉得你这里应该说明一下,如果我们使用了和Spring的结合,那么我们先前创建的CustomerApplication和OrderApplication及component配置文件就都没有用了,因为,restlet直接调用SpringComponent去路由到制定的URI资源。


后面的文章实战十、十一就提到如何在使用spring的情况下,配制使用application。
1 楼 nocohol 2009-07-22  
我觉得你这里应该说明一下,如果我们使用了和Spring的结合,那么我们先前创建的CustomerApplication和OrderApplication及component配置文件就都没有用了,因为,restlet直接调用SpringComponent去路由到制定的URI资源。

相关推荐

    RESTlet-jee-2.0.9自用.rar

    "restlet-jee-2.0.9.zip"是RESTlet-jee-2.0.9的源代码或者库文件,可能包含了所需的jar包、文档和其他资源,用于在项目中直接引用或进行二次开发。 总的来说,RESTlet-jee-2.0.9自用.rar这个压缩包是一个关于使用...

    restlet_jax-rs列子(客户端+服务端)

    RESTlet提供了一种模型-视图-控制器(MVC)的设计模式,使得服务端代码更易于理解和维护。通过使用RESTlet,开发者可以直接与HTTP协议交互,包括处理请求方法(GET, POST, PUT, DELETE等)和HTTP头信息。 **JAX-RS...

    chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.rar

    在“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-rest-api-t.crx

    restlet-client 谷歌插件 接口调试 最新

    restlet-jee-2.0.3

    Restlet是一个开源框架,专为构建RESTful Web服务和应用程序设计。REST(Representational State Transfer)是一种轻量级的架构风格,广泛应用于Web服务和API的设计,强调资源的表示和状态转移。Restlet JEE 2.0.3是...

    Restlet-Client-REST-API-Testing_v2.8.0.1

    总的来说,Restlet Client v2.8.0.1是针对REST API开发和测试的重要辅助工具,尤其适合前端开发者、API接口设计者和系统集成人员使用。其易用性和强大的功能使它在同类工具中脱颖而出,能够有效地帮助用户测试和优化...

    nexus-restlet1x-plugin-2.6.1-01.zip

    标题 "nexus-restlet1x-plugin-2.6.1-01.zip" 提供的信息表明,这是一个与 Nexus 服务器相关的插件,具体是 Restlet 1.x 版本的插件,版本号为 2.6.1-01。Nexus 是一个流行的 Maven 和 Nexus Repository Manager 的...

    restlet-jse-2.1.1.zip

    Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务;而且,事实证明它自从2005年诞生之时起,就是一个可靠的软件。 ...

    camel-restlet-spring-web-app

    标题 "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

    "chromecj.com-Restlet-Client-REST-API-Testing_v2.8.0.1.zip" 是一个针对 Chrome 浏览器的扩展程序包,主要用于 REST API 的测试。Restlet Client 是一个强大的工具,它使得开发者和测试人员能够轻松地进行 ...

    restlet-j2ee-2.0.15.rar

    标题中的"restlet-j2ee-2.0.15.rar"指的是Restlet框架的一个特定版本,即2.0.15,适用于Java EE平台。这个压缩包可能包含了该版本的源代码、JAR文件、文档、示例以及相关的配置文件,供开发者在J2EE环境下集成和使用...

    restlet-jee-2.2.2

    "restlet-jee-2.2.2"是Restlet框架的一个特定版本,适用于Java EE环境。这个版本的发布旨在为Java EE开发者提供一个高效且灵活的工具,用于构建符合REST原则的应用程序。以下是关于Restlet和其在Java EE中的应用的...

    restlet-jse-2.1.2

    在"restlet-jse-2.1.2"这个压缩包中,我们主要关注的是Restlet框架针对Java标准版(Java SE)的实现。版本号"2.1.2"表明这是一个特定的稳定版本,可能包含了之前版本的改进和修复。 Restlet框架的核心组件包括以下...

    Web Api调试工具 Chrome插件Restlet-Client-REST-API-Testing

    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

    标题"restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest"表明这是一个针对Java企业版(Java EE)的Restlet框架2.0.6版本的压缩包,其中包含了与org.restlet相关的组件。 描述中的"restlet框架所需...

    restlet-jse-2.2.1.zip

    1. **库文件**:包括JAR文件,如`restlet-api.jar`、`restlet-engine.jar`等,这些是Restlet框架的核心组件,提供了处理HTTP请求、响应、资源和组件的基本类和接口。 2. **文档**:可能包含API文档(如Javadoc),...

    Atlas2.3.0依赖: org.restlet/sqoop-1.4.6.2.3.99.0-195

    这个依赖包含了三个关键的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-jee-2.1.1.zip

    Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务;而且,事实证明它自从2005年诞生之时起,就是一个可靠的软件。 ...

    Restlet Client - REST API Testing(DHC)

    1. **安装DHC**: 通过访问链接&lt;https://chrome.google.com/webstore/detail/restlet-client-dhc-rest-api/aejoelaoggembcahagimdiliamlcdmfm&gt;,将DHC添加到Chrome或Firefox浏览器。 2. **创建请求**: 在DHC界面中...

    restlet-jse

    "Restlet-JSE"是一个基于Java的开源框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种轻量级的、架构风格的网络应用程序设计方法,它强调资源的表述和状态转移,通常用于构建高效、...

Global site tag (gtag.js) - Google Analytics