近年、インターネット産業の継続的な発展に伴い、API(Application Programming Interface、アプリケーションプログラムインターフェース)の概念が徐々に人々に浸透してきました。最新のソフトウェア アーキテクチャと開発において、API は重要な技術コンポーネントであるだけでなく、ビジネスの成長のサポートとプラットフォームの構築の中核でもあります。
API の実装では、PHP も広く使用されているバックエンド言語の 1 つです。 PHP では、通常、API インターフェイスを記述する方法が 2 つあります。この記事では、それらを紹介します。
従来の方法は、PHP をベースとした MVC フレームワークのメソッドとも呼ばれ、通常、このメソッドは API インターフェースのコードとコントローラー (Controller) を組み合わせます。 MVC フレームワーク全体として構成されています。
このメソッドでは、まずコントローラー クラスを定義する必要があります。例:
class ApiController { public function index() { // 代码逻辑 } public function add() { // 代码逻辑 } // 更多的业务方法 }
次に、リクエストを対応するコントローラー メソッドに転送するためのルートを定義します。例:
// 定义路由 Route::get('api', 'ApiController@index'); Route::post('api/add', 'ApiController@add'); // 更多的路由定义
最後に、各メソッドの最後に結果を JSON 形式で返す必要があります。
return json_encode($result);
従来の方法では、これはより伝統的な方法です。 MVC フレームワークのコントローラーを介して API を構成することは、開発速度とコードの保守性の点でより合理的ですが、一部の新興プロジェクトではより高いパフォーマンス要件が必要になる可能性があります。現時点では、2 番目の方法の使用を検討する必要があります。メソッド:
Laravel は、効率的な Web 開発と最新の Web 開発テクノロジーの最適な組み合わせを実現できる、MVC アーキテクチャに基づく PHP Web アプリケーション開発フレームワークです。 Laravel での API 開発も、特殊なコンポーネントである [Laravel Dingo API](https://github.com/dingo/api/) を使用して完了します。
Laravel Dingo API の特徴は次のとおりです:
Laravel Dingo API では、API ルートとコントローラーを簡単に構築できます。まず、ルートで API リクエスト メソッドと URL 形式を定義する必要があります。例:
$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'); });
次に、API コード ロジックをコントローラに実装する必要があります。例:
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; } }
in Laravel Dingo API では、より柔軟な出力メソッドを使用できます。例:
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(); } }
$this->response->item と $this-> を使用して、Helper トレイトを使用できます。 ;response-> 応答形式を柔軟に出力するためのコレクション。 Transformer を使用して、モデルを API で必要な形式に変換することもできます。
この記事では、PHP で API を実装する 2 つの方法、つまり従来の方法と Laravel 方法について学びました。ただし、インターネット業界が発展し続けるにつれて、API の実装も常に変化しています。特定のプロジェクトのニーズに基づいて、適切な実装方法を選択する必要があります。
以上がPHP でインターフェイスを記述するためによく使用される 2 つの方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。