ThinkPHP6? ???? RESTful API ??
Jun 20, 2023 pm 01:20 PM??? ???? ???? ???? RESTful API? ? ??? ??? ??? ?????. ? ???? ???? ?? ????? ??? ? ?? HTTP ???? ??? ?? ?????. RESTful API? ? ? ???? ?? PHP ????? ThinkPHP6? ???? ?? ??? ? ????.
?? ???? RESTful API ??? ???? ???. ThinkPHP6? ??? ??? ???? RESTful API ??????? ?? ??? ? ????. ??? ?????? ?? ???? ????? ??? ? ?? ??? ?????.
php think build --name api
??? api
? ????? ??????? ?????. ? ??? ??? ? ThinkPHP6? ?? ????? ??? ???? ?? RESTful API ?????? ??? ?????. api
是我們要創(chuàng)建的應(yīng)用程序名稱。執(zhí)行此命令后,ThinkPHP6會為我們創(chuàng)建一個基本的RESTful API應(yīng)用程序結(jié)構(gòu),包含以下目錄和文件:
api/ ├─ app/ │ ├─ controller/ │ ├─ model/ │ ├─ service/ │ ├─ validate/ │ └─ route.php ├─ config/ │ ├─ app.php │ └─ database.php ├─ public/ │ ├─ index.php │ └─ .htaccess ├─ vendor/ ├─ .env ├─ composer.json └─ README.md
其中,app
目錄存放我們的應(yīng)用程序相關(guān)文件。config
目錄存放我們的應(yīng)用程序配置文件。public
目錄存放我們的入口文件和靜態(tài)資源文件。vendor
目錄保存了我們的Composer依賴包。.env
是我們的環(huán)境配置文件。composer.json
則是我們的Composer配置文件。README.md
則是我們的說明文檔。
接下來,我們需要定義我們的API路由規(guī)則。在app
目錄下的route.php
文件中,我們可以添加我們的API路由規(guī)則。例如:
Route::resource('article', 'ArticleController');
上面這行代碼定義了一個article
資源路由,意思是我們可以通過這個路由來訪問和操作Article
資源。這個路由會自動生成7個RESTful API動作,包括index
、create
、store
、show
、edit
、update
和destroy
。我們可以在ArticleController
中實現(xiàn)這些動作。
<?php namespace appcontroller; use thinkRequest; use appmodelArticle as ArticleModel; class ArticleController { public function index() { $articles = ArticleModel::select(); return json($articles); } public function create() { return 'create'; } public function store(Request $request) { $data = $request->param(); $article = ArticleModel::create($data); return json($article); } public function show($id) { $article = ArticleModel::find($id); return json($article); } public function edit($id) { return 'edit'; } public function update(Request $request, $id) { $data = $request->param(); $article = ArticleModel::update($data, ['id' => $id]); return json($article); } public function destroy($id) { $article = ArticleModel::destroy($id); return json($article); } }
上面這段代碼中,我們用ArticleModel
來處理與Article
資源有關(guān)的數(shù)據(jù)操作。在index
動作中,我們獲取所有的Article
數(shù)據(jù)并返回。在store
動作中,我們將通過Request
對象獲取到的數(shù)據(jù)保存到數(shù)據(jù)庫中。其他動作的實現(xiàn)也類似。
最后,我們需要在config
目錄下的app.php
return [ 'app_status' => 'api', 'default_return_type' => 'json', 'http_exception_template' => [ 401 => function ($request) { return json(['code' => 401, 'msg' => 'Unauthorized']); }, 404 => function ($request) { return json(['code' => 404, 'msg' => 'Not Found']); }, 500 => function ($request, $exception) { return json(['code' => 500, 'msg' => 'Internal Server Error']); }, ], ];? ?
app
?????? ?????? ?? ??? ?????. config
????? ?????? ?? ??? ?????. public
????? ?? ??? ?? ??? ??? ?????. vendor
????? Composer ??? ???? ?????. .env
? ?? ?? ?????. composer.json
? Composer ?? ?????. README.md
? ??? ?????. ???? API ??? ??? ???? ???. app
????? route.php
???? API ??? ??? ??? ? ????. ?: rrreee
?? ?? ??article
??? ??? ?????. ?, ? ??? ?? Article
???? ????? ??? ? ??? ?????. ? ??? index
, create
, store
, show
, ? ??? 7?? RESTful API ??? ???? ?????. ??
, ????
? ??
. ArticleController
?? ??? ??? ??? ? ????. ??rrreee??? ????? ArticleModel
? ???? Article
???? ??? ??? ??? ?????. index
????? ?? Article
???? ??? ?????. store
????? Request
??? ?? ?? ???? ??????? ?????. ?? ??? ??? ?????. ????????? config
????? app.php
???? API ??????? ??? ???? ???. ?: ??rrreee??? ????? ??????? ?? ??? JSON?? ?????. ?? ?? HTTP ?? ?? ??? ?????. ?????? ThinkPHP6? ???? RESTful API? ??? ? ????. ? ?????? ???? RESTful API ?? ???? ?? ???? ??? API ??????? ?? ?? ??? ?????. ??? ??? ThinkPHP6? ???? RESTful API ??? ?? ?????. ??? ??? 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)

ThinkPHP ????? ????? ??? ?????: Composer? ????, ???? ????? ???? php bin/console? ????, ?? ???? ??? http://localhost:8000? ?????.

ThinkPHP?? ??? PHP ????? ??? ?? ??? ????. ??? ???? 3.2, 5.0, 5.1, 6.0? ????, ??? ??? ??? ???? ??? ??? ???? ? ?????. ?? ?? ??? ThinkPHP 6.0.16???. ??? ??? ? PHP ??, ?? ?? ?? ? ???? ??? ??????. ??? ??? ??? ???? ?? ?? ??? ???? ?? ????.

ThinkPHP Framework? ???? ???? ??: ThinkPHP Framework? ?? ????? ?????? ??? ???. ThinkPHP ?? ????? ???? ?? ???(?? ??)? ????. ?????? ?? ????? ?????. ? ??? ?????. ThinkPHP ??????? ??????. ThinkPHP ?????? URL? ???? ?????.

Laravel? ThinkPHP ?????? ?? ??: ThinkPHP? ????? ??? ? ??? ??? ?? Laravel?? ??? ????. Laravel? ? ????? ??? ??????? ?? ThinkPHP? ? ??? ? ????.

ThinkPHP ?? ??: PHP, Composer ? MySQL ??? ?????. Composer? ???? ????? ????. ThinkPHP ?????? ???? ?????. ?????? ??? ?????. ?????? ??? ?????. ??????? ???? http://localhost:8000? ?????.

ThinkPHP? ?? ????, ?? ???, ?? ?? ? ?????? ???? ?? ??? ?? ??? PHP ????????. ?? ?? ???? ??? ?? 10,000? ??? ??? ??? ? ??? JD.com, Ctrip? ?? ??? ? ??? ? ?????? ????? ?? ?? ?????? ?? ?????.

Oracle? ????? ??? ?????? ?? ??? ??????, Oracle? API(?? ????? ?????)? ???? Oracle ??????? ?? ?? ???? ???? ? ??? ?? ??? ?????. ? ????? Oracle API ?? ???? ??? ???? ????? ?? ???? ?? ??? ????? ??? ???? ??? ???? ???? ?? ??? ?????. 1.???

Oracle API ?? ?? ??: ??? ?? ??? ??? ???? ?? ?? ??? ?????. ??? ??? ??? ?? ?? ???? ?? ???? ???? ???? ?? Oracle API? ??? ??? ?? ??? ?? ? ?????. ??? ? ??. ? ????? OracleAPI? ?? ??? ???? ???? API ?? ??? ???? ????? ??? OracleAPI? ? ? ???? ??? ? ??? ???? ?? ??? ?????. 1. ?? ??? API
