一个用lumen5.1写api的例子
测试地址 lumen.lyyw.info/api
测试文档 doc
- 使用 dingo/api
- 用户验证使用 jwt(json-web-token)
- orm transformer fractal
- 文档使用 apidocjs
- api规范参考 jsonapi.org
- rest测试工具 postman
##使用dingo API 教程 http://vea.re/blog/150905-api-with-dingo-and-lumen-part-1
lumen 关闭了好多功能,所以要先修改一下才能使用
大概步骤是:
-
修改bootstrap/app.php,打开
Dotenv::load(__DIR__.'/../')
,这样就可以加载.env文件了 -
打开
$app->withEloquent()
,因为要使用orm -
注册dingo的服务
$app->register(Dingo\Api\Provider\LumenServiceProvider::class)
,添加到80行左右那个位置。 -
然后就可以按照dingo的文档使用了
$api = app('Dingo\Api\Routing\Router'); $api->version('v1', function($api){ $api->get('collections/{collection}', function(){ return 'test'; }); });
- 如何使用不同版本的api
再header中增加Accept
Accept: applicationAPI_STANDARDS_TREE
.API_SUBTYPE
.VERSION
+json
例如:Accept: application/prs.lumen.v2+json
教程 http://laravelista.com/json-web-token-authentication-for-lumen/
这个库tymondesigns/jwt-auth
图片的大标题写着 for laravel & lumen
但是!!还没有支持lumen,所以要按照上面的教程一步一步做很多工作。
作者说很快会跟新lumen的文档
https://github.com/generationtux/jwt-artisan 这个库支持了lumen, 已尝试,可以用, 我还是决定用tymondesigns的这个。
- composer install
- 复制.env.example 为.env
- 配置数据库信息
- php artisan migrate
- v2 版本的api 只是个例子,可以删除了
- dingo/api#672
transformer include
- 如果.env的某个值中有空格会报错log not found