有人使用过 Dingo/API 管理 API 的组件么 求助
Dingo/api 运行报错
本人最近在做的项目,涉及到给手机app提供api,想尝试下 https://github.com/dingo/api/ 来管理api,按照github上的wiki一路next,结果还没深入就报错,不知道哪里出问题,请各位路过的一起帮忙看看。
开发环境
- php 5.6
- nginx 1.7
composer 配置
"require": {
"php" : ">=5.5.9",
"laravel/framework" : "5.1.*",
"lucadegasperi/oauth2-server-laravel" : "4.1.x@dev",
"tymon/jwt-auth" : "0.5.*",
"dingo/api" : "0.9.*@dev"
},
要是按照wiki上的 "dingo/api": "0.9.*" 根本找不到包的版本,所以我加上@dev 总算可以下载
增加providers
'providers' => [
Dingo\Api\Provider\LaravelServiceProvider::class
]
生成api配置文件
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
扩展验证方法
按照wiki原文增加验证扩展提供者,结果一加上去就报错
Authentication Providers
By default only basic authentication is enabled. Authentication is covered in more detail in a later chapter.
You must configure this in a published configuration file or in your bootstrap file.$app['Dingo\Api\Auth\Auth']->extend('oauth', function ($app) { return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']); });
按照wiki,我在bootstrap/app.php 内增加了上面的代码,不知道是加错地方呢,还是版本有问题,访问首页直接报错
报错结果
Fatal error: Uncaught exception 'Illuminate\Contracts\Container\BindingResolutionException' with message 'Target [Dingo\Api\Contract\Routing\Adapter] is not instantiable.' in E:\site\project\vendor\laravel\framework\src\Illuminate\Container\Container.php:744 Stack trace: #0 E:\site\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(626): Illuminate\Container\Container->build('Dingo\\Api\\Contr...', Array) #1 E:\site\project\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(674): Illuminate\Container\Container->make('Dingo\\Api\\Contr...', Array) #2 E:\site\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(837): Illuminate\Foundation\Application->make('Dingo\\Api\\Contr...') #3 E:\site\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(800): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter)) #4 E:\site\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(771): Illuminate\Contain in E:\site\project\vendor\laravel\framework\src\Illuminate\Container\Container.php on line 744
从报错信息来看,提示 Dingo\Api\Contract\Routing\Adapter 不能 实例化,但是wiki上这么描述,实际却行不通,难道是我打开方式不对?还是姿势不多,坑啊,谁能告诉我咩,咋回事
推荐文章: