1. 程式人生 > >一個簡單的REST例項

一個簡單的REST例項

首先用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.   def self .down  
  11.   drop_table :friends
  12.   end
  13. 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. Net::HTTP.start('localhost', 3000) do |http |  
  3.   response = http.get('/friends/list', 'Accept' => 'text/xml')  
  4.   #Do something with the response.
  5.   puts "Code: #{response.code}"
  6.   puts "Message: #{response.message}"
  7.   puts "Body:\n #{response.body}"
  8. end


執行以後輸出的結果是:

  1. Code: 200  
  2. Message: OK  
  3. Body:  
  4.  <? xml version = "1.0" encoding = "UTF-8" ?>
  5. < friends >
  6.   < friend >
  7.     < email > [email protected] </ 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。

相關推薦

一個簡單例項Loan類的實現和測試

import java.util.Scanner; public class TestLoanClass { public static void main(String[] args) { // TODO 自動生

建立一個簡單spring例項,spring單例與多例,初始化與銷燬

(1)在配置完spring提示框架後(上一遍文章有介紹),首先建立一個專案,匯入sprig所需的jar包然後書寫主配置檔案applicationContext.<?xml version="1.0" encoding="UTF-8"?> <beans xml

Java子執行緒和主執行緒交替輸出(一個簡單例項

實現主執行緒和子執行緒的交替輸出列印,首先建立一個實現執行緒方法的Service public class Service { private volatile boolean flag = false; //這是一個控制sub和mian的開關,加關鍵字volatil

freemark一個簡單例項

學習網址:http://www.freemarker.org/docs/index.html //官方網站線上文件http://www.sunjava.cn/FreeMarker.htm //其它資料以下附件是一個freemark與struts1的一個簡單案例子,

一個簡單例項來了解PE檔案

文中RegisterMe及原視訊下載地址:http://pan.baidu.com/s/1bnqOgnt開啟這個RegisterMe.exe程式,會出現如下煩人的訊息框 引入 目標:去掉煩人的訊息框 工具:Ollydbg 轉載原文:http://www.freebuf

一個簡單例項來聊聊什麼是Restful介面

Restful介面的簡介 通過學習本文件後能夠掌握到的知識點 1.Restful的基本概念 2.Restful原則條件 3.Restful分層系統 子曰:“學而不思則罔,思而不學則殆。” 1. 使用Restful的原因 2018元月第一份

一個簡單Dubbo例項

作為一個分散式框架Dubbo在專案中使用逐步越來越多,通過該框架很容易實現分散式,之前已經寫了一個大致步驟,今天有時間就整理一下,寫一個完整的例項作為記錄一下過程,在專案進行之前,首先下載並搭建maven服務,建立maven本地倉庫,然後在eclipse中配置maven,步驟

一個簡單REST例項

首先用ruby script/generate migration create_table_friends建立一個migration檔案, 寫入以下程式碼: class  CreateTableFriends < ActiveRecord::Migration 

用 C# 實現一個簡單Rest Service 供外部調用

message [] operation rem adk www span method title 用 C# 實現一個簡單的 Restful Service 供外部調用,大體總結為4點: The service contract (the methods it o

學習 WebService 第三步:一個簡單的實例(SoapUI測試REST項目)

方法 資源 ima .com required tle margin 導出 ont 原文地址:SOAPUI測試REST項目(六)——REST服務和WADL ↑↑↑ 原文用的SoapUI,2018-3-19時,這個軟件已經更名為ReadyAPI(集成了SoapUI),因此下文

一、一個簡單的socket通訊例項(TCP)

  1.服務端程式碼 import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * 類功能描述:先啟動伺服器端,再啟動客戶端 * * @author:*** * @creat

關於Java中timer的一個簡單例項應用

效果展示 核心程式碼: Timer timer = new Timer();//新增定時器 timer.schedule( new TimerTask(){//重寫定時任務 public void run(){ button2.setText("取消"+S

GUI使用者介面的一個簡單例項

這篇部落格寫得比較趕,就不贅述了。 內含有設定框架,面板,按鈕怎麼嵌在一起,插入圖片,設定字型和顏色,前景色背景色,位置等。重點在實現功能,介面並不美觀。 私以為,這麼多個東西怎麼看呢?就應該把一些行註釋掉就知道怎麼看了。 image是在src下面的資料夾 package gui; im

繼承與多型的一個簡單例項

程式結構: 父為Person類,Person類個子類Student和Employee,Employee類又有兩個子類,Staff和Faculty。 繼承即子類可以繼承父類的資料域和方法: Student類和Employee類繼承了Person類的資料域name,address pho

一個簡單Python爬蟲例項(爬取的是前程無憂網的部分招聘資訊)

從今天開始學習爬蟲,展示我的第一個例項(用的是Python3寫的,Python2需要加個編碼方式吧,或許還有其他的不相容的地方吧,我就不知道了),把這分享給大家,希望對大家有一些幫助 import urllib,re import urllib.request import xlwt #開啟網頁

typescript-koa-postgresql 實現一個簡單rest風格服務器 —— typescript 開發環境配置

cit yarn 文件 pos serve 代碼 esc 服務 run 最近需要用 nodeJS 寫一個後臺程序,為了能夠獲得 IDE 的更多代碼提示,決定用 typescript 來編寫,隨便也學習下 ts,在這記錄下實現過程。 1、新建文件夾 typescript-ko

typescript-koa-postgresql 實現一個簡單rest風格伺服器 —— 整合 koa

接上文 1、安裝 koa yarn add koa koa-router koa-static yarn add @types/koa @types/koa-router @types/koa-static --dev 2、修改 server.ts 1 /* 2 *

typescript-koa-postgresql 實現一個簡單rest風格服務器 —— 連接 postgresql 數據庫

don nds key num ole HERE prim mage 時間 接上一篇,這裏使用 sequelize 來連接 postgresql 數據庫 1、安裝 sequelize,數據庫驅動 pg yarn add sequelize sequelize-typesc

typescript-koa-postgresql 實現一個簡單rest風格伺服器 —— 連線 postgresql 資料庫

接上一篇,這裡使用 sequelize 來連線 postgresql 資料庫 1、安裝 sequelize,資料庫驅動 pg yarn add sequelize sequelize-typescript pg reflect-metadata 2、新建配置資料夾

Ajax實現區域性資料互動的一個簡單例項

  想要實現的功能:利用Ajax技術通過點選一個<button>按鈕,然後在指定的文字框中輸出想要的值。 1、使用Jsp建立一個前端頁面。 1 <body> 2 <div style="text-align: center;"> 3 <