エンドポイントは、ルーティングの別の用語です。API について議論するとき、多くの人はアクセスされるルートをエンドポイントとして考えることに慣れています。
メイン アプリケーションのルーティングとの混合を避けるために、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. });});
$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 を生成できるように、バージョン番号を指定する必要があります。異なるバージョン番号でも使用できます。
$ php artisan api:routesこのコマンドは、Laravel の Route:list コマンドと同じです。