???? ???? ??? ?? ? ???? ??? ???? ??????? ???? ??? ?? ? ??? ?????. RESTful ? ???? ??? ???? ???? ??? ?? ? ?? ???? ???? ????.
???, ???? ??? ? ?????? ?? ?????? Yii ?????? RESTful ? ??? ??? ?? ???????. ? ????? Yii ?????? ???? RESTful ?? ? ???? ???? ??? ?????.
1. RESTful ? ??? ??
REST(Representational State Transfer)? ?? ???? ???? ? ???? ???? ??? ? ??? ????, HTTP ????? ???? ?? ? ????? ?? ?????. ???? SOAP ????? ???? RESTful ? ???? ??? ?? ??? ????:
1. ???: RESTful ? ???? HTTP ????? ???? ?? ??? ???? ??? ???? ??? ???? ?? ??? ?????. ??? ??? ??.
2. ???: RESTful ? ???? ??? ???? ??? ?? ??? ???? ??? ?? ??? ???? ??? ???? ??? ? ????.
3. ?? ??: RESTful ? ???? ????? ??? ???? ?? ??? ????? ???? URI? ????.
4. ???: RESTful ? ???? ?? HTTP ??? ?? ??? ???? ??? ?? ??? ????? ???? ?? ???? ?? ??? ? ????.
?? ??? ???? ?? ? ?? ? ??????? RESTful ? ???? ???? ???? ???? ???? ??? ? ??????? ?? ????? ?? ? ????.
2. Yii ????? ??
Yii ?????? PHP ?? ??? ??? ? ?????? ?? ????????.
1 ???: Yii ?????? ??? ?? ?? ?? ? ?? ?? ??? ?????. ???? ??? ??? ?? ?? ??? ???? ??? ??? ?????.
2. ?? ???: Yii ?????? ??? ?? ???? ???? ??? ??? ?? ? ??? ?? ????? ?????.
3. ??: Yii ?????? ?? ???? ?? ??? ?? ??? ? ??? ???? ???? ? ??? ????? ?????.
4. ?? ???: Yii ?????? ??? ??? ??? ?? ??? ????? ???? ??? ??? ? ????.
3. Yii ?????? ???? RESTful ? ??? ??
1. Yii ????? ??
?? Yii ?????? ???? ???. Composer? ???? ?? ??? ???? ??? ? ????:
$ composer require yiisoft/yii2
2. ?? ?????? ??
Yii ?????? ? ??????? ??? ???? ??? ???? ?? ??? Yii ??????? ?????.
$ php yii init3. RESTful ??? ?? Yii ???????? ??????? HTTP ??? ???? ??? ? ??? ???? ???? ???. ?? ???? ?? ???? RESTful ???? ????? ???.
return [ 'id' => 'app', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'language' => 'zh-CN', 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ [ 'class' => 'yiiestUrlRule', 'controller' => 'user', ], ], ], ], ];? ??? ??? ??
user
? ??? ?? ??? UserController
? ?????. UserController
? ???? RESTful ???(GET, POST, PUT, DELETE ?)? ????? ?? ?? ??? ? ?? yiiestController
???? ???? ???. user
相關(guān)的請(qǐng)求都交給UserController
處理。UserController
需要繼承yiiestController
類,該類已封裝好了常見的RESTful方法(GET、POST、PUT、DELETE等),可以直接進(jìn)行使用。
4.編寫Controller
接下來(lái),我們需要編寫UserController
類來(lái)處理請(qǐng)求。例如,當(dāng)用戶請(qǐng)求獲取所有用戶列表時(shí),可以編寫以下代碼:
<?php namespace appcontrollers; use yiiestActiveController; class UserController extends ActiveController { public $modelClass = 'appmodelsUser'; public function actionIndex() { $users = ppmodelsUser::find()->all(); return $users; } }
在上述代碼中,我們使用了ActiveController
類中的actionIndex()
方法來(lái)處理GET
請(qǐng)求。該方法中查詢數(shù)據(jù)庫(kù)中的所有用戶,并以JSON
格式返回。
5.測(cè)試RESTful Web服務(wù)
至此,我們已經(jīng)開發(fā)完了一個(gè)基于Yii框架的RESTful Web服務(wù)。我們可以使用Postman等工具來(lái)測(cè)試服務(wù)。例如,在Postman中發(fā)送GET
請(qǐng)求至http://localhost/user
4. ???? ??
???? ??? ???? ?? UserController
???? ???? ???. ?? ??, ???? ?? ??? ??? ????? ???? ?? ?? ??? ??? ? ????.
? ????? ActiveController? <code>actionIndex()
???? ?????. ???? ???? GET
??? ?????. ? ????? ??????? ?? ???? ???? JSON
???? ?????.
http://localhost/user
? GET
??? ????. ????4. ??????? ???? RESTful ? ???? ??? ??, ??? Yii ?????? ???? RESTful ?? ? ???? ???? ??? ?????. Yii ?????? ?? ??? ??? ?? ??? ?? ? ?????? ???? Yii ?????? ???? ?? ???? ??? ? ????. ? ??? RESTful ? ???? ???? ? ??? ??? ????. ??? ??? Yii ?????? ???? RESTful ?? ? ??? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

Yii ????? ????: ??????? ?? ? ??? ?? ?? [??] ? ??????? ??? ? ????? ??????? ??? ???? ????? ?? ? ?? ?? ??? ???? ???. Yii ?????? ??????? ??? ???? ??? ? ?? ?? ??? ??? ? ?? ??? ???? ??? ?????. ? ???? Yii ?????? ???? ??? ???? ?? ? ??? ??? ???? ??? ?????. [?????] ????? ??????? ??? ???? ?? ?? ??? ??? ???? ?? ????.

? ????? 7?? ??? ????: "HTTP ????", "RESTful ????", "??? ?? ??", "WSDL", "SOAP", "??" ? "???": 1. HTTP ????, ? ??? ?? HTTP ???? 2. ?? ???? ???? ??? ? ???? ???? ? ???? RESTful ???? 3. ???? ???? ? ???? WSDL ????? ? ?? ?

Yii ?????? ???? ? ??? ?? ? ??? ??? ???? ?? ??: ? ?? ???? ?? ? ???? ??? ??? ??? ????? ?? ???? ???? ???? ?? ??? ?? ????. Yii ?????? ???? ? ??? ?? ? ??? ??? ???? ???? ? ??? ?? ??? ?? ? ???? ??? ?????. ? ????? Yii ?????? ???? ? ??? ?? ? ??? ??? ???? ??? ?????. 1. ? ??? ??? ??????. Yii ???????? ?? ??? ?? ? ??? ??? ???? ? ????. ?? ?? ?? co? ???.

Java ??: JAX-WS? ??? ? ??? ?? ??: ?? ????? ????? ? ???? ???? ???? ?? ??????. Java ??? ? ???? ?? ?? ????? ???? ??? ? ?? ??? ??? JAX-WS(JavaAPI for XML-WebServices)? ?????. ? ????? ?? ? ??? ??? ?? JAX-WS? ???? ??? ???? ??? ??? ??? ? ??? ???? ?? ??? ?????. J? ??????

Java? ???? RESTful ?? API? ???? ?? RESTful? HTTP ????? ???? ?? ???? ???? GET, POST, PUT, DELETE ? ?? HTTP ???? ??? ???? ???? ?????. Java ????? SpringMVC, Jersey ?? ?? ?? ?????? ???? RESTful API? ?? ????? ???? ? ????. ? ????? Java? ???? RESTful ??? ???? ??? ??? ?????.

Python ???? ??? ?? Linux ???? ? ???? ???? ?? ?? ??? 1. ?? ???? ??? ???? ?? ? ???? ?? ??? ???? ? ?? ??? ?????. ???? ??? ????? ??? Python? ? ??? ?? ?????. ? ????? Python ????? ???? Linux ???? ? ???? ???? ??? ???? ?? ?? ??? ?????. 2. ?? ???? ?? Python? ???? ???.

Laravel? ??? RESTful API ??: ???? ? ??? ?? ???? ??? ???? ?? ? ???? ?? ??? ?? ???? ????. ???? ? ??? ????? RESTfulAPI? ??? ???? ??? ???? ? ??? ?? ???????. ? ???? Laravel ?????? ???? ?? RESTful API? ???? ??? ?????. Laravel? PHP ?????.

YII ??? ???? ???? ?? ? ?? ??? ?? ?? ?? ???? ??????. 1. MVC ???? : ??, ? ? ????? ?? ??? ?????. 2. ACTIVERECORD : ORM ?? ??? ????? ?????? ??? ???????. 3. ?? ? ??? : ?? ?? ?? ? ??? ??? ???? ??? ?????? ???? ?????. ??? ?? ??? ?? ??? ????? ????? ?? ?? ? ??????.
