Dalam beberapa tahun kebelakangan ini, dengan perkembangan berterusan industri Internet, konsep API (Antara Muka Pengaturcaraan Aplikasi, antara muka program aplikasi) secara beransur-ansur menjadi biasa kepada orang ramai. Dalam seni bina dan pembangunan perisian moden, API bukan sahaja merupakan komponen teknikal yang penting, tetapi juga teras untuk menyokong pertumbuhan perniagaan dan membina platform.
Dalam pelaksanaan API, PHP juga merupakan salah satu bahasa back-end yang paling banyak digunakan. Dalam PHP, biasanya terdapat dua kaedah untuk menulis antara muka API, dan artikel ini akan memperkenalkannya.
Kaedah tradisional juga boleh dipanggil kaedah dalam rangka kerja MVC berdasarkan PHP Kaedah ini biasanya menggabungkan kod antara muka API dengan pengawal (Controller) dalam rangka kerja MVC Disusun secara keseluruhan.
Dalam kaedah ini, kita perlu terlebih dahulu menentukan kelas pengawal, contohnya:
class ApiController { public function index() { // 代码逻辑 } public function add() { // 代码逻辑 } // 更多的业务方法 }
Kemudian tentukan laluan untuk memajukan permintaan kepada kaedah pengawal yang sepadan, contohnya:
// 定义路由 Route::get('api', 'ApiController@index'); Route::post('api/add', 'ApiController@add'); // 更多的路由定义
Akhir sekali, kita perlu mengembalikan hasil dalam bentuk JSON pada akhir setiap kaedah:
return json_encode($result);
Dalam kaedah tradisional, ini adalah cara yang lebih tradisional. Mengatur API melalui pengawal rangka kerja MVC adalah lebih munasabah dari segi kelajuan pembangunan dan kebolehselenggaraan kod, tetapi beberapa projek baru muncul mungkin mempunyai keperluan prestasi yang lebih tinggi Pada masa ini, kami perlu mempertimbangkan untuk menggunakan kaedah kedua:
Laravel ialah rangka kerja pembangunan aplikasi web PHP berdasarkan seni bina MVC, yang boleh mencapai gabungan terbaik pembangunan web yang cekap dan teknologi pembangunan web moden. Pembangunan API dalam Laravel juga disiapkan menggunakan komponen khusus - [Laravel Dingo API](https://github.com/dingo/api/).
Ciri API Laravel Dingo:
Dalam Laravel Dingo API, kami boleh membina laluan dan pengawal API dengan mudah. Mula-mula, kita perlu mentakrifkan kaedah permintaan API dan format URL dalam laluan, contohnya:
$api = app(Dingo\Api\Routing\Router::class); $api->version('v1', function ($api) { $api->get('items/{id}', 'App\Http\Controllers\ItemsController@show'); $api->post('items', 'App\Http\Controllers\ItemsController@store'); $api->put('items/{id}', 'App\Http\Controllers\ItemsController@update'); $api->delete('items/{id}', 'App\Http\Controllers\ItemsController@destroy'); });
Kemudian, kita perlu melaksanakan logik kod API dalam pengawal, contohnya:
use Illuminate\Http\Request; class ItemsController extends Controller { public function show($id) { $item = Item::find($id); return $item; } public function store(Request $request) { $item = new Item; $item->title = $request->input('title'); $item->description = $request->input('description'); $item->save(); return $item; } public function update(Request $request, $id) { $item = Item::find($id); $item->title = $request->input('title'); $item->description = $request->input('description'); $item->save(); return $item; } public function destroy($id) { $item = Item::find($id); $item->delete(); return $item; } }
Dalam API Laravel Dingo, kita boleh menggunakan kaedah output yang lebih fleksibel, contohnya:
use Illuminate\Http\Request; use Dingo\Api\Routing\Helpers; use App\Transformers\ItemsTransformer; class ItemsController extends Controller { use Helpers; public function show($id) { $item = Item::find($id); return $this->response->item($item, new ItemsTransformer); } public function index() { $items = Item::all(); return $this->response->collection($items, new ItemsTransformer); } public function store(Request $request) { $item = new Item; $item->title = $request->input('title'); $item->description = $request->input('description'); $item->save(); return $this->response->item($item, new ItemsTransformer); } public function update(Request $request, $id) { $item = Item::find($id); $item->title = $request->input('title'); $item->description = $request->input('description'); $item->save(); return $this->response->item($item, new ItemsTransformer); } public function destroy($id) { $item = Item::find($id); $item->delete(); return $this->response->noContent(); } }
Kita boleh menggunakan ciri Helper, dengan menggunakan $this->response-> item dan $this- >respons->koleksi kepada format respons output secara fleksibel. Kami juga boleh menggunakan Transformer untuk menukar model kepada format yang diperlukan dalam API.
Dalam artikel ini, kami mempelajari dua kaedah untuk melaksanakan API dalam PHP: kaedah tradisional dan kaedah Laravel. Walau bagaimanapun, apabila industri Internet terus berkembang, pelaksanaan API juga sentiasa berubah. Kita perlu memilih kaedah pelaksanaan yang sesuai berdasarkan keperluan projek tertentu.
Atas ialah kandungan terperinci Penjelasan terperinci tentang dua kaedah yang biasa digunakan untuk menulis antara muka dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!