Dengan pembangunan berterusan Internet mudah alih, RESTful API telah menjadi bahagian penting dalam pembangunan web. Ia adalah kaedah komunikasi berdasarkan protokol HTTP yang boleh digunakan untuk mengakses dan mengendalikan sumber web. Untuk membangunkan API RESTful dengan lebih baik, kami boleh menggunakan rangka kerja PHP ThinkPHP6 untuk mencapainya.
Pertama, kita perlu mewujudkan struktur API RESTful asas. Menggunakan alat baris arahan ThinkPHP6, anda boleh menjana aplikasi API RESTful dengan mudah. Buka antara muka baris arahan, tukar ke direktori projek kami, dan masukkan arahan berikut:
php think build --name api
di mana, api
ialah nama aplikasi yang ingin kami buat. Selepas melaksanakan arahan ini, ThinkPHP6 akan mencipta struktur aplikasi RESTful API asas untuk kami, termasuk direktori dan fail berikut:
api/ ├─ app/ │ ├─ controller/ │ ├─ model/ │ ├─ service/ │ ├─ validate/ │ └─ route.php ├─ config/ │ ├─ app.php │ └─ database.php ├─ public/ │ ├─ index.php │ └─ .htaccess ├─ vendor/ ├─ .env ├─ composer.json └─ README.md
Antaranya, direktori app
menyimpan fail berkaitan aplikasi kami. Direktori config
menyimpan fail konfigurasi aplikasi kami. Direktori public
menyimpan fail kemasukan dan fail sumber statik kami. Direktori vendor
menyimpan pakej pergantungan Komposer kami. .env
ialah fail konfigurasi persekitaran kami. composer.json
ialah fail konfigurasi Komposer kami. README.md
ialah dokumentasi kami.
Seterusnya, kami perlu menentukan peraturan penghalaan API kami. Dalam fail app
di bawah direktori route.php
, kami boleh menambah peraturan penghalaan API kami. Contohnya:
Route::resource('article', 'ArticleController');
Barisan kod di atas mentakrifkan laluan sumber article
, yang bermaksud kami boleh mengakses dan mengendalikan sumber Article
melalui laluan ini. Laluan ini akan menjana 7 tindakan API RESTful secara automatik, termasuk index
, create
, store
, show
, edit
, update
dan destroy
. Kita boleh melaksanakan tindakan ini dalam ArticleController
.
<?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); } }
Dalam kod di atas, kami menggunakan ArticleModel
untuk mengendalikan operasi data yang berkaitan dengan sumber Article
. Dalam tindakan index
, kami mendapat semua data Article
dan mengembalikannya. Dalam tindakan store
, kami menyimpan data yang diperoleh melalui objek Request
ke dalam pangkalan data. Pelaksanaan tindakan lain adalah serupa.
Akhir sekali, kami perlu menetapkan konfigurasi aplikasi API kami dalam fail config
di bawah direktori app.php
. Contohnya:
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']); }, ], ];
Dalam kod di atas, kami menyatakan bahawa jenis respons aplikasi kami ialah JSON. Juga mentakrifkan beberapa kaedah pengendalian ralat HTTP.
Pada ketika ini, kami boleh menggunakan ThinkPHP6 untuk membangunkan API RESTful. Menggunakan rangka kerja ini boleh mempercepatkan kecekapan membangunkan API RESTful Pada masa yang sama, ia juga menyediakan kebolehselenggaraan yang lebih baik untuk aplikasi API kami.
Atas ialah kandungan terperinci Melaksanakan RESTful API menggunakan ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!