26
Yii2 RESTful Service 國屏東科技學 - 電算中教學研究組 陳志豐

Yii2 restful 基礎教學

Embed Size (px)

DESCRIPTION

Yii2 restful 基礎教學

Citation preview

Page 1: Yii2 restful 基礎教學

Yii2 RESTful Service國⽴立屏東科技⼤大學-電算中⼼心教學研究組

陳志豐

Page 2: Yii2 restful 基礎教學

Outline

Yii Framework與⼯工具介紹

開發環境介紹

開始動⼿手建置

結語

Page 3: Yii2 restful 基礎教學

Yii Framework與⼯工具介紹

Page 4: Yii2 restful 基礎教學

Yii Framework

Yii Framework是⼀一個滿熱⾨門的框架,這個框架主要是主打快速開發,安全與⾼高效能的⼀一個框架。

⺫⽬目前最新版本為2.0版本

資料庫物件操作是採⽤用ORM模式操作其核⼼心元件為ActiveRecord,可以讓使⽤用者⽤用物件⽅方式去操作資料庫。

Page 5: Yii2 restful 基礎教學

Postman - REST Client

Postman 是⼀一個 Chrome 的 Extension, 安裝完後可以直接在Chrome上⾯面測試api。

模擬各種 HTTP requests:從常⽤用的 GET、POST 到 RESTful 的 PUT 、 DELETE …等等。 甚⾄至還可以送出檔案、送出額外的 header。

Collection 是 requests的集合,在做完單⼀一個測試的時候, 你可以把這次的 request 存到特定的 Collection 裡⾯面,如此⼀一來,下次要測試的時候,就不需要重新輸⼊入。

Page 6: Yii2 restful 基礎教學

RESTful API

資源是由URI來指定。

對資源的操作包括獲取、創建、修改和刪除資源,這些操作正好對應HTTP協議提供的GET、POST、PUT和DELETE⽅方法。

Page 7: Yii2 restful 基礎教學

開發環境介紹

Page 8: Yii2 restful 基礎教學

開發環境介紹OS:Mac os x 10.9.5

PHP:5.4

IDE:Sublime text2

DB:Mysql 5

Test tool:Postman

Page 9: Yii2 restful 基礎教學

CREATE TABLE `country` ( `code` CHAR(2) NOT NULL PRIMARY KEY, `name` CHAR(52) NOT NULL, `population` INT(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; !INSERT INTO `Country` VALUES ('AU','Australia',18886000); INSERT INTO `Country` VALUES ('BR','Brazil',170115000); INSERT INTO `Country` VALUES ('CA','Canada',1147000); INSERT INTO `Country` VALUES ('CN','China',1277558000); INSERT INTO `Country` VALUES ('DE','Germany',82164700); INSERT INTO `Country` VALUES ('FR','France',59225700); INSERT INTO `Country` VALUES ('GB','United Kingdom',59623400); INSERT INTO `Country` VALUES ('IN','India',1013662000); INSERT INTO `Country` VALUES ('RU','Russia',146934000); INSERT INTO `Country` VALUES ('US','United States',278357000);

建置所需要資料表

Page 10: Yii2 restful 基礎教學

開始動⼿手建置

Page 11: Yii2 restful 基礎教學

下載Yii2 Basic App

點選連結下載

Page 12: Yii2 restful 基礎教學

解壓縮檔案

Page 13: Yii2 restful 基礎教學

資料夾更名為restfultest

Page 14: Yii2 restful 基礎教學

將資料夾搬移⾄至Web Root

Web Root路徑,依Mac環境為/Library/WebServer/

Documents/

Page 15: Yii2 restful 基礎教學

將資料夾搬移⾄至Web Root

Web Root路徑,依Mac環境為/Library/WebServer/

Documents/

Page 16: Yii2 restful 基礎教學

修改資料夾權限

sudo chmod -R 777 /Library/WebServer/Documents/restfultest/

Page 17: Yii2 restful 基礎教學

設定Yii2環境變數設定檔案路徑:restfultest/config/web.php

Page 18: Yii2 restful 基礎教學

新增Yii2 RESTful設定 設定檔案路徑:restfultest/config/web.php

Page 19: Yii2 restful 基礎教學

設定資料庫連線 設定檔案路徑:restfultest/config/db.php

資料庫連線ip

使⽤用者

密碼

Page 20: Yii2 restful 基礎教學

新增Controller 檔案路徑:restfultest/controllers/CountryController.php

restful api 需要對應的資料表 如果不需要,直接保持空字串即可

Page 21: Yii2 restful 基礎教學

新增Model 檔案路徑:restfultest/models/Country.php

資料表名稱

Page 22: Yii2 restful 基礎教學

在專案web資料夾新增.htaccess檔檔案路徑:restfultest/web/.htaccess

RewriteEngine On !RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d !RewriteRule . index.php

Page 23: Yii2 restful 基礎教學

將測試資料新增⾄至資料庫

Page 24: Yii2 restful 基礎教學

測試RESTful API是否成功

測試網址 http://localhost/restfultest/web/

countries 測試結果

Page 25: Yii2 restful 基礎教學

結語

使⽤用RESTful的優點:

• 可更⾼高效利⽤用快取來提⾼高響應速度

• 通訊本⾝身的無狀態性可以讓不同的伺服器的處理⼀一系列請求中的不同請求,提⾼高伺服器的擴展性

• 跨平台

Page 26: Yii2 restful 基礎教學

謝謝⼤大家的聆聽