ホームページ  >  記事  >  バックエンド開発  >  Laravel & Lumen RESTFul API 拡張パッケージ: Dingo API (2) -- API エンドポイントの作成 (ルーティング)

Laravel & Lumen RESTFul API 拡張パッケージ: Dingo API (2) -- API エンドポイントの作成 (ルーティング)

WBOY
WBOYオリジナル
2016-06-23 13:11:391026ブラウズ

エンドポイントは、ルーティングの別の用語です。API について議論するとき、多くの人はアクセスされるルートをエンドポイントとして考えることに慣れています。

1. バージョン番号

メイン アプリケーションのルーティングとの混合を避けるために、Dingo API は独自のルーターを使用するため、最初に API ルーター インスタンスを取得してエンドポイントを作成する必要があります。

$api = app('Dingo\Api\Routing\Router');

次に、後続のロールバックのために複数バージョン API に対して同じエンドポイントを作成できるように、バージョン番号を定義する必要があります:

$api->version('v1', function ($api) {});

特定のグループが API の複数のバージョンに応答するようにしたい場合は、マルチバージョン配列:

$api->version(['v1', 'v2'], function ($api) {});

ここでのバージョン番号は次のように表示できます。 フレームワークの標準ルーティング グループは、配列属性を 2 番目のパラメータとして渡します:

$api->version('v1', ['middleware' => 'foo'], function ($api) {});

通常のバージョン グループをネストして、後でより複雑なカスタム エンドポイントを実装することもできます:

$api->version('v1', function ($api) {    $api->group(['middleware' => 'foo'], function ($api) {        // Endpoints registered here will have the "foo" middleware applied.    });});

2. エンドポイントを作成します

バージョン番号を使用します その後、$api を使用してエンドポイントの作成を開始できます:

$api->version('v1', function ($api) {    $api->get('users/{id}', 'App\Api\Controllers\UserController@show');});

エンドポイントはバージョン番号によってグループ化されているため、同じ URI を使用して異なる応答を作成できます。同じエンドポイント:

$api->version('v1', function ($api) {    $api->get('users/{id}', 'App\Api\V1\Controllers\UserController@show');});$api->version('v2', function ($api) {    $api->get('users/{id}', 'App\Api\V2\Controllers\UserController@show');});

独自のメソッドを使用してリソースを登録し、デバイスを制御することもできます。

注: Laravel とは異なり、コントローラーの完全な名前空間をここで指定する必要があります。

ルートに名前を付けて URL を生成します

名前付きルートは、対応する URL を簡単に生成するのに役立ちます。 Laravel のようにルートに名前を付けることができます:

$api->get('users/{id}', ['as' => 'users.index', 'uses' => 'Api\V1\UserController@show']);

次に、この名前付きルートへの URL を生成できます:

app('Dingo\Api\Routing\UrlGenerator')->version('v1')->route('users.index');

バージョン番号に基づいて URL を生成できるように、バージョン番号を指定する必要があります。異なるバージョン番号でも使用できます。

3. コンソールでルートを表示します

Laravel 5.1 を使用している場合は、Artisan コマンドを使用して登録されたルートを表示できます:

$ php artisan api:routes

このコマンドは、Laravel の Route:list コマンドと同じです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。