接下來將以用戶管理(user_service)作為範例的說明:
1. 建立RESTful SOA Sevice - rails new
1. 建立RESTful SOA Sevice - rails new
- 開啟命令視窗/終端機
- 輸入 rails new user_service, 透過rails new指令建立名為user_service的Rails網頁應用程式,以作為RESTful SOA的Service,執行結果如下:
2. 建立用戶服務 - rails generate scaffold
每個用戶含有以下資料:帳號、密碼、姓名、年齡、性別
- 首先切換到account_service應用程式目錄下,以mac為例,建立後即存放講user所屬的目錄的,因此可在終端機直接輸入 cd user_service
- 輸入 rails generate scaffold user account:string password:string name:string age:integer gender:boolean,透過rails generate scaffold建立用戶服務user,並建立帳號 - account、密碼 - password、姓名 - name、年齡 - age、性別 - gender等資料欄位,其中account、password與name皆為字串string資料,age為整數integer,而gender為boolean資料(存放1為男生0為女生)。執行結果如下:
3. 建立資料庫 - rake db:migrate
- 輸入rake db:migrate,透過rake db:migrate建立user資料表,執行如下:
4. 啟動伺服器 - rails server
- 輸入rails server,透過rails server啟動伺服器,其預設的port為3000:
5. 測試 - Postman @ Chrome
- 安裝Postman於Chrome中,安裝Chrome後於其中的"線上應用程式商店"搜尋Postman,並安裝,畫面如下:
- 開啟Postman,測試用戶user的CRUD
- C(Create):
- URL:http://localhost:3000/users.json
- HTTP Method:POST
- Data
- 帳號(account):lokanghung
- 密碼(password):abc123
- 姓名(name):羅康鴻
- 年齡(age):34
- 性別(gender):1
- R (Read):
- URL:http://localhost:3000/users.json
- HTTP Method:GET
- Data:(None)
- U (Update)
- URI:http://localhost:3000/users/1.json
- HTTP Method:PUT
- Data:URI後方的"1",其為id為1的資料
- D (Delete)
- URI:http://localhost:3000/users/1.json
- HTTP Method:DELETE
- Data:URI後方的"1",其為id為1的資料
Rails使用什麼資料庫啊?
預設為sqlite3,若有需要可透過{your_webserver_name}\config\database.yml檔案的更改使用不同的資料庫,當然,相對應連結資料庫的gem元件也是必須安裝的。
scaffold建立資料時的資料型別有哪些?
有以下資料型別:
string
text (long text, up to 64k, often used for text areas)
datetime
date
integer
binary
boolean
float
decimal (for financial data)
time
timestamp
我透過scaffold建立的是user為何有些URI會變成複數的users?
這是因為Rails有複數的機制,會自動辨視名詞將其轉為對應的複數。
為何URI後面都要加上.json?
因為Rails支援很多格式的資料傳輸,如html、xml都是Rails傳輸資料的一種格式,因此需透過.json指名使用的資料格式為json,當然,您也可以試試.xml。
為何每在新增資料時,每個資料欄位都要加上user[]?
這關乎到對應的Controller如何讀取資料,加上user[],在Controller中就可以直托透過params[:user]建立User物件,並將資料代入物件中。
這些URI是如何生成的?
您可以{your_webserver_name}\config\routes.rb中找到生成的方式,預設是透過resources方法生成,如:resource:users。您也在終端機輸入rake routes查看目前生成的URI。
這些URI如何與Controller對應?
透過resources :users建立的URI與Controller對應如下:
GET /users.json => index方法
GET /users/1.json => show方法
POST /users.json => create方法
PUT /users/1.json => update方法
DELETE /users/1.json => destroy方法