画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

Laravel5でdingo/apiを使おうとしたらTarget [Dingo\Api\Contract\Routing\Adapter] is not instantiable.

Laravelでapiを作ろうとしていて、api作るのによさげなライブラリないかなぁと探していたら、見つけた。

https://github.com/dingo/api

インストール方法や設定方法などは以下に書いてある

https://github.com/dingo/api/wiki

見ながらやっていったけど、 https://github.com/dingo/api/wiki/Creating-API-Endpoints#version-groups

この辺を設定した後にエラーが発生してしまった。。。

Target [Dingo\Api\Contract\Routing\Adapter] is not instantiable.

いろいろググりまくって調べていたが、よくわからず。。。。

結論 作り直したらうまく行った。

つらいなーと思って再度作りなおしたらうまく行った。。。org

laravel new blog
cd blog
composer require dingo/api:0.10.*

config/app.phpのprovidersに以下を追加

Dingo\Api\Provider\LaravelServiceProvider::class

以下を実行。

php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"

すると、config/api.phpが作成された!

app/Http/routes.phpに、以下を追加してもエラーにならなかったー。

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

composer.lockをうまくいったケースとうまくいかなかったケースを比較して見たが、一緒だった。 その他diffを確認してみると、ちらほら違う部分があったので、laravelのプロジェクトを作った時の何かかなぁとは思うけど、そんなに変な事はしてないはずなのだが、、、

とりあえず、深追いはしてない。無駄に時間を消費してしまった気分。。。org