fb_license

技術標籤

@selector (1) 初使化區塊 (1) 物件 (1) 物件導向 (2) 型別 (4) 封裝 (1) 流程控制 (1) 陣列 (3) 推論型別 (2) 實機測試 (1) 蓋索林(gasolin) (1) 模組 (1) 憑證 (1) 轉型 (1) 羅康鴻 (121) 類別 (1) 變數 (5) Accelerometer (1) ActiveRecord (1) Activity (1) AFNetworking (1) alloc (1) Android (3) Animation (1) App (1) App ID (1) APP上傳 (1) ASP.NET (1) AVAudioPlayer (1) block (1) C# (2) class (1) CLLocationManager (1) CLLocationManagerDelegate (1) CMMotionManager (4) Controller (1) delegate (1) DELETE語法 (1) Device Motion資料 (1) Dialog (1) DropDownList (1) dynamic language (2) Facebook SDK (9) FBRequest (5) FBRequestConnection (2) FMDB (1) Gesture Recognizers (6) GROUP BY (2) Gyro (1) HAVING (1) IBAction (1) IBOutlet (1) id (3) inheritance (1) init (1) Insert (1) instance variable (1) Interface Builder (1) iOS (70) iOS idea (7) iOS Introduction (1) Layout (1) Magnetometer (1) Menu (2) Method (2) MKMapView (1) MKPointAnnotation (1) MS SQL (5) Nil (1) NSArray (1) NSDictionary (1) NSError (1) NSFileManager & .plist (1) NSMutableArray (1) NSMutableDictionary (1) NSNotificationCenter (1) NULL (1) object (2) Objective-C (16) Objective-C idea (1) ORDER BY (1) Parameter (1) property (1) protocol (2) Provisioning (1) Proximate Sensor (1) Q and A (2) R類別 (1) Rails (9) RESTful SOA (9) Ruby (8) Scene (1) SEELECT (1) Segue (2) SEL (1) SELECT語法 (1) Shake (1) Simulator (1) SOA (8) SQL (6) SQL Server (5) SQL函數 (1) SQL彙總函數 SQL (1) SQLite (1) Storyboard (1) Style (1) Swift (1) Table (1) target & action (1) Theme (1) Toast (1) TRUNCATE TABLE語法 (1) UIActionSheet (1) UIActionSheetDelegate (1) UIActivityIndicatorView (1) UIAlertView (1) UIBarButtonItem (1) UIButton (1) UICollectionView (1) UICollectionViewDataSource (1) UIControl (9) UIDatePicker (1) UIImage (1) UIImagePickerController (2) UIImagePickerControllerDelegate (2) UIImageView (1) UILabel (1) UILongPressGestureRecognizer (1) UINavigationController (2) UIPanGestureRecognizer (1) UIPinchGestureRecognizer (1) UIProgressView (1) UIResponder (1) UIRotationGestureRecognizer (1) UISegmentedControl (1) UISlider (1) UIStepper (1) UISwipeGestureRecognizer (1) UISwitch (1) UITabBarController (1) UITableView (1) UITableViewDataSource (1) UITapGestureRecognizer (1) UITextField (1) UITextFieldDelegate (1) UITextView (2) UITextViewDelegate (1) UIToolBar (1) UIView (8) UIWebView (1) UPDATE語法 (1) var (2) VB.NET (7) View (4) WHERE子句 (1) XML (1)

2013/10/06

[Rails] 建立RESTful SOA Part I using Rails scaffold



Railsscaffold,快速的建立RESTful SOA




接下來將以用戶管理(user_service)作為範例的說明:

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方法