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

WBOY
リリース: 2016-06-23 13:11:39
オリジナル
985 人が閲覧しました

エンドポイントは、ルーティングの別の用語です。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 コマンドと同じです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!