`
nnnnon
  • 浏览: 150233 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个简单的REST实例

    博客分类:
  • RORs
阅读更多

首先用ruby script/generate migration create_table_friends创建一个migration文件,
写入以下代码:


 
  1. class  CreateTableFriends < ActiveRecord::Migration  
  2.   def   self .up  
  3.   create_table :friends   do   |t |  
  4.       t.column :first_name :string   
  5.       t.column :last_name :string   
  6.       t.column :phone :string :limit =>12  
  7.       t.column :email :string   
  8.   end   
  9.   end   
  10.   
  11.   def   self .down  
  12.   drop_table :friends   
  13.     
  14.   end   
  15. end   


运行: rake migrate
生成相应的数据表friends
利用ruby script/generate scaffold friends生成一个支架,可以通过:http://127.0.0.13000添入几条测试数据。

修改控制器中的list代码:

ruby 代码
 
  1. def  list  
  2.   #@friends_pages, @friends = paginate :friends, :per_page => 10   
  3.   @friends =Friend.find( :all )  
  4.   respond_to do   |wants |  
  5.      wants.html  
  6.      wants.js  
  7.      wants.xml{render :xml => @friends .to_xml}  
  8.   end   
  9. end   


这个时候我们可以在浏览器中输入:http://127.0.0.1:3000/friends/list/index.xml 你就可以查看到相应的数据信息,它是以xml形式显示的。

这样我们就完成了简单的一个相当于服务器端的功能,接下来我们就要来实现我们的客户端,我们可以直接通过ruby代码来调用,也可以再建一个rails应用来调用。我们分别给出:
1.

ruby 代码
 
  1. require 'net/http'  
  2.   
  3. Net::HTTP.start('localhost', 3000) do   |http |  
  4.   response = http.get('/friends/list', 'Accept' => 'text/xml')  
  5.   
  6.   #Do something with the response.   
  7.   
  8.   puts "Code: #{response.code}"   
  9.   puts "Message: #{response.message}"   
  10.   puts "Body:\n #{response.body}"   
  11. end   


运行以后输出的结果是:


 
  1. Code: 200  
  2. Message: OK  
  3. Body:  
  4.  <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  5. < friends >   
  6.   < friend >   
  7.     < email > mloki@124.com </ email >   
  8.     < first-name > &#39532; </ first-name >   
  9.     < id   type = "integer" > 3 </ id >   
  10.     < last-name > &#29702;&#20891; </ last-name >   
  11.     < phone > 0511-8791837 </ phone >   
  12.   </ friend >   
  13. </ friends >   


我们可以看到中文字条无法显示。

2.
在model中建立两个rb文件:

friends_resource.rb

 
  1. class  FriendsResource < ActiveResource::Base  
  2.   self .site = 'http://localhost:3000'  
  3. end   

friend.rb

ruby 代码
 
  1. class  Friend < FriendsResource  
  2.   self .site += '/friends/list'  
  3. end   


通过ruby script/generate controller getrest生成一个控制器,其中写一个index函数,实现如下:

ruby 代码
 
  1. def  index  
  2. @f =Friend.find( :all )  
  3. end   


建立相应的template文件,通过iterate我们就就可以把这个列表中所有的friend的相应属性输出。

注:论坛里好多同学说中文问题,其实只要做以下几件事,就可以很好的解决中文问题:

  1. 在创建数据库的时候,设定其编码为:utf-general-ci
  2. 在datatbase.yaml中设定:encoding: utf8
  3. 最后一点就是把编辑器的编码改为utf-8就可以了(我用的是eclipse,可以实现这个功能的)

我希望坛子上的高手来实现用客户端删除、更改和创建friend。

分享到:
评论
4 楼 李超群 2007-01-28  
proper 写道
使用 Rest 的方式的话,是不是这段
http://127.0.0.1:3000/friends/list/index.xml

不应该用动词?

比如可以写成:
http://127.0.0.1:3000/friends/
就是那到了全部的friends了
同时还得用get这种method才行。如果是post的话就是新建一个了。
3 楼 proper 2007-01-28  
使用 Rest 的方式的话,是不是这段
http://127.0.0.1:3000/friends/list/index.xml

不应该用动词?

比如可以写成:
http://127.0.0.1:3000/friends/
就是那到了全部的friends了
2 楼 nnnnon 2007-01-25  
yooyer 写道
谢谢,你的文章!
我看了http://www.ibm.com/developerworks/cn/java/j-cb08016/index.html
上面有用 Java 代码调用服务的代码,如果用c#,该如何调用web服务啊?


我不会C#的,真的对不起.你可以参照一下那段java代码,我想应该也会用到C#中的网络库的.模仿试一下.
1 楼 yooyer 2007-01-24  
谢谢,你的文章!
我看了http://www.ibm.com/developerworks/cn/java/j-cb08016/index.html
上面有用 Java 代码调用服务的代码,如果用c#,该如何调用web服务啊?

相关推荐

    Struts2+rest简单实例

    在这个"Struts2+rest简单实例"中,开发者创建了一个小型的示例应用,目的是帮助初学者快速理解如何在Struts2框架中集成RESTful服务。以下是这个实例中可能涉及的关键知识点: 1. **Struts2框架基础**:Struts2的...

    REST 客户端 完整 实例 绝对经典。

    首先,让我们深入了解如何使用JAVA的HttpURLConnection来创建一个简单的REST客户端。HttpURLConnection是JAVA标准库的一部分,无需额外依赖即可使用。以下是一个基础的GET请求示例: ```java URL url = new URL(...

    cpprest实例工程

    在"cpprest实例工程"中,我们可以学习到以下关键知识点: 1. **cpprest库的安装与配置**:首先,我们需要获取cpprest库并将其正确地集成到开发环境中,这可能涉及到库文件的下载、编译以及链接设置等步骤。对于...

    java rest简单实例,新手入门

    在这个“java rest简单实例,新手入门”的项目中,你将学习如何使用Java来创建RESTful API。 首先,我们需要理解REST的基本概念。REST的核心是资源,每个资源都有一个唯一的URI(统一资源标识符),通过HTTP方法来...

    Spring3.0 rest 实例

    通过以上步骤,我们可以构建出一个完整的Spring 3.0 REST实例。这个实例展示了如何利用Spring的特性来创建符合REST原则的服务,提供高效、可扩展且易于使用的API。在实际项目中,根据具体需求,还可以进一步优化和...

    基于HTTP的REST软件架构实例

    - **实例结构**:由于压缩包文件名为"RestPro",我们可以推断这可能是一个关于REST实践的项目,可能包含服务器端代码(如Java、Python或Node.js)、客户端代码(如JavaScript或命令行工具)以及相关的配置文件。...

    struts2+rest简单实例

    在这个"struts2+rest简单实例"中,我们可以看到如何将这两种技术结合在一起,以创建一个更现代化、更灵活的应用程序。以下是一些关于Struts2和REST的关键知识点: 1. **Struts2核心概念**: - **Action类**:这是...

    java rest api入门实例

    REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...

    kettle rest 接口 请求实例

    举例来说,假设我们有一个REST API用于管理用户信息。我们可以创建一个Kettle转换,首先登录并获取token,然后使用该token向API发送请求,如创建新用户、更新用户信息或查询用户列表。Kettle的JSON解析能力使这一切...

    Spring @MVC REST 实例以及 (同一资源,多种展现:xml,json,html)

    该实例展示了 spring3 REST 的使用方法,以及同一种内容,多种不同方式展示的实现,例如同一 User 信息,可以展示为:xml,json,html三种不同的格式。可以参考这篇文章:http://badqiu.javaeye.com/blog/552806

    JAX-RS之rest接口实例

    例如,我们可以使用`javax.ws.rs.client.ClientBuilder`来创建一个`Client`实例,然后通过`target()`指定URL,`request()`设置请求方法和类型,最后`invoke()`发送请求并处理响应。 ```java import javax.ws.rs....

    Spring3.0实现REST实例

    Spring框架,作为一个强大的Java企业级应用开发平台,自3.0版本开始,对RESTful服务的支持得到了极大的增强。本篇文章将深入探讨如何利用Spring 3.0来创建RESTful服务,并通过实例解析其核心概念和技术。 首先,...

    spring-data-rest-angular例子

    Spring Data REST Angular 示例项目是一个整合了Java Spring Boot框架与Angular前端框架的应用实例,展示了如何构建一个现代化的Web应用。这个项目旨在演示如何利用Spring Data REST将后端数据服务暴露为RESTful API...

    Spring MVC3 REST实例

    使用Spring MVC3基于注解的形式实现的REST小例子 部署运行: 1. 将工程导入eclipse 2. 添加tomcat属性 工程(右键)——&gt; tomcat project——&gt; update context 3. 启动tomcat 4. 在浏览器中输入...

    REST基础及实例开发

    REST入门知识及实例开发,涵盖REST设计原则,资源识别方法,在Jersey下开发RESTful webservice实现转账业务,包括服务端,客户端源码,详细阐述HTTP的4个请求方法(GET,POST,PUT,DELETE)在REST中的应用,使你...

    Spring3MVC-REST-HelloWorld 实例简单代码

    通过这个简单的Spring3MVC-REST-HelloWorld实例,你可以学习到如何构建一个基本的RESTful服务,并了解Spring MVC在处理HTTP请求中的角色。这只是一个起点,Spring MVC还支持许多高级特性,如拦截器、异常处理、数据...

    cxf rest最简实例可直接运行

    这个类定义了一个名为`/api/str/abc`的REST端点,它响应GET请求并返回一个简单的字符串。 3. **配置CXF**:在你的应用中配置CXF以启动REST服务。这通常涉及到创建一个CXF的Servlet并在web.xml文件中配置它: ```...

    rest架构web实例

    - 资源(Resource):在REST架构中,一切皆为资源,每个资源都有一个唯一的URI(Uniform Resource Identifier)来标识。 - 表述(Representation):资源的状态可以通过不同的格式(如JSON或XML)进行表述。 - ...

    [WCFREST]一个简单的REST服务实例

    为了让读者对REST在WCF中的应用有一个大致的了解,我们先来进行一个简单的实例演示。[源代码从这里下载]  微软在WCF3.5中就通过提供基于WebHTTP的编程模式使我们很容易地创建基于REST的服务,WCF4.0中对此进行了较...

Global site tag (gtag.js) - Google Analytics