`
美丽的小岛
  • 浏览: 309444 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Rest第一个实验

 
阅读更多

这些天在看一本叫做《REST实战》的书,觉得内容有点难明白的,好像十分的抽象的。虽然有了HTTP的基础,但是,还是觉得很抽象,模糊得很。
决定做一个实验,体验一下REST实实在在摸得到的感觉。开始寻找第一感觉,记录第一次的感性认识。
如下步骤进行:
1.寻找指导
冲浪去寻找答案,如下网址有助于入门:
(1).http://www.restlet.org/documentation/1.0/tutorial
(2). http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/378-restlet.html

2.下载restlet包
寻找一个工具包,如下两个地方有很多,上一个新一点(2.0),下一个旧一点(1.0)。
(1)http://www.restlet.org/downloads/
(2)http://webscripts.softpedia.com/script/Development-Scripts-js/Restlet-45528.html

3.布置环境(myeclipse+jdk6.0)
对下载的工具包进行解压,包很多,还分了很多个文件夹来的。在文件夹里面的包也有用的。如果不用会报错。
打开myeclipse,创建一个web project。引入工具包中的所的包,包括里面的子文件夹的包。

4.用官网的代码来测试

import org.restlet.Component;
import org.restlet.Restlet;
import org.restlet.data.MediaType;
import org.restlet.data.Protocol;
import org.restlet.data.Request;
import org.restlet.data.Response;

public class TestMain {
	public static void main(String[] args) throws Exception {
		// Create a new Restlet component and add a HTTP server connector to it
		Component component = new Component();
		component.getServers().add(Protocol.HTTP, 8182);

		// Create a new tracing Restlet
		Restlet restlet = new Restlet() {
		@Override
		public void handle(Request request, Response response) {
		// Print the requested URI path
			String message = "Resource URI  : " + request.getResourceRef()
						+ '\n' + "Root URI      : " + request.getRootRef()
						+ '\n' + "Routed part   : "
						+ request.getResourceRef().getBaseRef() + '\n'
						+ "Remaining part: "
						+ request.getResourceRef().getRemainingPart();
			response.setEntity(message, MediaType.TEXT_PLAIN);
		   }
		};
		// Then attach it to the local host
		component.getDefaultHost().attach("/trace", restlet);
		// Now, let's start the component!
		// Note that the HTTP server connector is also automatically started.
		component.start();
	}

}

 5.执行
在浏览器输入如下的东西,会有如下的显示


 6.用servlet来试一试
(1)创建一个资源resource

import org.restlet.Context;
import org.restlet.data.MediaType;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.restlet.resource.Representation;
import org.restlet.resource.Resource;
import org.restlet.resource.StringRepresentation;
import org.restlet.resource.Variant;

public class TestResource extends Resource {
	public TestResource(Context context, Request request, Response response) {
		super(context, request, response);
		getVariants().add(new Variant(MediaType.TEXT_PLAIN));
	}

	@Override
	public Representation getRepresentation(Variant variant) {
		Representation representation = new StringRepresentation(
				"Success, Great!", MediaType.TEXT_PLAIN);
		return representation;
	}
}

 (2)一个应用类application

import org.restlet.Application;
import org.restlet.Context;
import org.restlet.Restlet;
import org.restlet.Router;
public class TestApplication extends Application {
    public TestApplication(Context pc) {
        super(pc);
    }
    @Override
    public synchronized Restlet createRoot() {
        Router r = new Router(getContext());
        r.attachDefault(TestResource.class);
        return r;
    }
}

 (3)配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
  <context-param>
  	<param-name>org.restlet.application</param-name>
  	<param-value>TestApplication</param-value>
  </context-param>
  
  <servlet>
  	<servlet-name>RestletServlet</servlet-name>
  	<servlet-class>com.noelios.restlet.ext.servlet.ServerServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>RestletServlet</servlet-name>
  	<url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

 (4)浏览器查看结果情况



 

  • 大小: 86 KB
  • 大小: 65 KB
1
1
分享到:
评论
2 楼 美丽的小岛 2012-06-04  
aegeanmoon 写道
spring3 MVC也是支持REST的 ,配置也很简单 ,建议也参考下

嗯嗯,好的。谢谢指点。我试着去配置一下。
1 楼 aegeanmoon 2012-06-03  
spring3 MVC也是支持REST的 ,配置也很简单 ,建议也参考下

相关推荐

    Openlayer调用arcgis的REST服务的代码

    除了这些核心功能之外,还有一些扩展功能存在于OpenLayers的实验性分支或第三方库中,例如: - **身份识别任务**(Identify Task):用于识别地图上特定位置的信息。 - **地理处理任务**(Geoprocessing Task):...

    第三章实验代码

    在"第三章实验代码"中,我们可以期待看到以下几个关键知识点: 1. 数据结构与算法:作为程序设计的基础,数据结构用于高效存储和组织数据,而算法则是解决问题的具体步骤。在旅游资源管理中,可能会用到如链表、树...

    使用WCF开发REST服务

    - **DEVHOL-300-3**:《建立您的第一个工作流应用》Level 300。 此外,微软官方文档中心和团队博客也是获取最新WCF开发资源和教程的重要渠道。通过这些资源,开发者可以持续提升自己的技能,掌握WCF开发RESTful服务...

    JavaWeb习题解析与实验指导_JavaWeb习题解析与实验指导_

    JavaWeb是Java编程领域的一个重要分支,主要用于构建Web应用程序。《JavaWeb习题解析与实验指导》这本书无疑是学习这一主题的宝贵资源,尤其对于正在学习《Java Web编程技术(第3版)-微课版》的读者来说,它提供了...

    NotRetrofit, 为Android和Java类型的安全REST客户端.zip

    NotRetrofit, 为Android和Java类型的安全REST客户端 NotRetrofit ( 实验)贡献者。NotRetrofit将你的REST API 转换为Java接口。广场/翻新是一个伟大的项目。... NotRetrofit是第一个用生成的代码实现完整栈的。 指导原则

    10.OpenFeign之第一个Feign程序

    Feign是一个Java到HTTP客户端绑定器,它的灵感来自于Retrofit,JAXRS-2.0和WebSocket。Feign的主要目的是将绑定命名的复杂性降低到HTTP api不去考虑rest的复杂性。

    decanter:使用 Elixir 以 REST 方式公开资源

    第一个是 Elixir 中的 / 风格的库,用于在 Plug 之上通过 RESTful 接口公开资源。 它建立在动态构建的决策图之上,允许省略固定决策,并定制默认的 HTTP 决策图。 这允许它在 Plug 下单独使用,或者适合更大的框架...

    master_ApiRest:实验室实践Api Master LemonCode的其余部分

    Master Lemon Code 8 2020/2021的Api Rest实践实验室实践Api Master LemonCode的其余部分简介我们将使用一个公共API来显示Rick&Morty系列中的数据 为了模拟写入,我们将使用本地json服务器json服务器作为切入点,...

    宁津县实验中学第一学期八年级期中英语试题及答案精选.doc

    1. 数量表达:在英语中,表示具体的数字与million(百万)等单位连用时,不加复数形式,如题目中的"two million dollars"表示两百万美元。 2. 词语搭配:题目中出现的"plenty of"是正确的表达,用于修饰可数或不可...

    软件体系结构与设计第3次上机实验报告1

    【软件体系结构与设计实验报告】\n\n一、引言\n本次实验旨在让学生深入理解Web Service风格的软件架构,通过开发、测试、发布和调用Web Service,体验其基本方法、工具和流程。实验中,我们将以发送电子邮件消息的...

    SA第3次上机实验报告-董安宁 1111711

    实验要求学生以发送电子邮件服务为例,实现一个可重用的功能模块,这在现实生活中有着广泛的应用,如账户验证等场景。 实验中,学生需要实现三个关键的服务功能: 1. sendEmail(String _url, String _payload):...

    (2021-2022)年专题资料可编程逻辑器件设计实验报告.docx

    #### 第一部分:简单D触发器 - **实验目的**:掌握Quartus II 的基本使用方法,并能够完成基本的时序电路设计。 - **实验内容**:设计一个简单的D触发器。 - **实验步骤**:同上。 - **Verilog HDL 代码** ```...

    软件设计与体系结构第三次实验.zip

    在本次实验中,我们将深入探讨如何使用Vue.js前端框架与Spring Boot后端框架协同开发一个课堂签到API。这个项目旨在提升对软件设计与体系结构的理解,通过实践应用,掌握现代Web开发的核心技术。 首先,Vue.js是一...

    WEB数据库开发与研究,包括实验要求

    理解这两者是制作交互式Web应用的第一步。 2. **JavaScript**:JavaScript是Web开发中的重要脚本语言,它负责处理用户交互、动态内容更新以及与服务器的异步通信。AJAX(Asynchronous JavaScript and XML)技术就是...

    江苏省宜兴市实验中学2020学年八年级英语上学期第一次月考试题(无答案) 牛津译林版.doc

    这份文档是江苏省宜兴市实验中学2020学年八年级英语上学期的第一次月考试题,由牛津译林版教材编制。试题旨在检验学生对英语语法、词汇、句型以及日常交际用语的理解和运用能力。下面将详细解析部分题目所涉及的英语...

    curso-rest-apis-lab2

    标题“curso-rest-apis-lab2”暗示这是一个关于REST API的课程或实验的第二部分,可能涉及实际操作和练习。REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序,尤其是Web服务。它...

    spring-boot-lab1:使用 Spring Data JPA 构建连接到 PostgreSQL 数据库的简单 REST API 的 Spring Boot 培训课程

    实验室包含三个部分,不同的 Git 分支建立在上一部分的工作之上,所以如果你卡住了,你可以随时检查下一个分支。 并查看解决方案。 部分是: ##Part 1, 基本代码结构和依赖。 Git 分支主。 这是实验室的起点。 通过...

    Testing:我的第一个 GIT 实验

    todos-jersey 是一个示例 REST+JSON 应用程序,它演示了使用 JAX-RS/Jersey 的 Stormpath 用户管理。 Stormpath 是一个用户管理 API,它通过即时、可扩展的用户基础架构来缩短开发时间。 Stormpath 直观的 API 和...

    基于java+springboot+vue开发旅游景区门票网站管理系统源码+实验报告+运行说明.zip

    该压缩包包含的是一个基于Java、SpringBoot和Vue技术栈开发的旅游景区门票网站管理系统的完整源码,以及相关的实验报告和运行说明。这个系统旨在提供一个高效、便捷的平台,用于管理旅游景区的售票业务,包括但不...

    matlab导入xlsx数据代码步骤-rest_pipeline:使用CONN的静息态fMRI分析管道

    matlab导入xlsx数据代码一步一步使用 CONN (rest_pipeline) 的静息状态 fMRI 分析管道 此代码仅用于我们的...当您第一次运行分析并希望得到连通性矩阵时,请运行除二级分析之外的所有内容。 如果您需要指定其他 CONN

Global site tag (gtag.js) - Google Analytics