dingo 配置

Dingo包的大多数配置都预先设置好了,这样你就可以尽快的进入开发模式了,我们也可以参照config/api.php中的env()函数中的内容在.env文件中去设置。

当然也可以使用AppServiceProvider中的boot进行设置
(这个怎么设置???)

提示: 如果你使用Laravel5,那么必须使用Dingo生成的配置文件config/api.php或者是使用Service Provider设置。

生成config/api.php的方法

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

Standards Tree

一共提供了3种tree,x, prs, vnd
x: unregistered tree 本地或是私有环境
prs: personal Tree 项目不是用于商业发布的
```vnd: vender tree`` 用于公开的商业项目

.env文件中这样配置

API_STANDARDS_TREE=vnd

还是不理解x, prs, vnd???

Subtype

subtype 是项目或工程的简称,全部小写

API_SUBTYPE=zjpblog

前缀和子域名
通常对于api,我们会使用子域名或者是位于/api栏目下,两者只要使用一个就可以了,注意不要添加版本号到子域名或者是/api下,版本号会有header的Accept处理

// 设置栏目行
API_PREFIX=api

//或者是设置子域名,两者选一个
API_DOMAIN=api.zhoujiping.com

版本 Version

两个作用:1,它是默认的版本号或者是没有提供版本号,使用这个,2是在生成api文档的时候会使用该版本号

API_VERSION=v1

名字 Name
API_NAME 的唯一作用是在使用API Blueprint命令生成文档的时候会使用,这样可以省去手动书写名字

API_NAME=Zhoujiping Blog
//如果上面的设置不成功,使用下面的
API_NAME="Zhoujiping Blog"

带条件的请求

由于缓存API请求的时候会使用客户端的缓存功能,所以默认是开启了带条件的请求,如果要关闭这项

API_CONDITIONAL_REQUEST=false

严格模式
严格模式要求客户端发送Accept头代替.env文件中的version,意味着不能通过浏览器访问api。

如果Strict模式开启并且使用了无效的Accept头,API会抛出一个Symfony\Component\HttpKernel\Exception\BadRequestHttpException异常。

你可以在.env中配置这个选项:

API_STRICT=false

认证提供者

默认情况下,只有basic认证是可以用的,后面的章节会用更多的介绍,如果需要复杂功能的认证,你需要注册服务提供者

$app['Dingo\Api\Auth\Auth']->extend('oauth', function ($app) {
   return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']);
});

登录次数限制

默认情况下,是限制登录次数的,你可以通过rate limiter注册自定义登录次数限制,也可以使用系统自带的认证和取消认证的throttle模块。
要进行更为复杂的操作,也是需要注册服务提供者的

$app['Dingo\Api\Http\RateLimit\Handler']->extend(function ($app) {
    return new Dingo\Api\Http\RateLimit\Throttle\Authenticated;
});

数据返回Response Transformer

Fractal 是默认的数据返回处理Transformer.
我们可以在.env文件中设置,
config/api.php中有

//怎么设置.env????
'transformer' => env('API_TRANSFORMER', Dingo\Api\Transformer\Adapter\Fractal::class),

也不可以不用上面的方法,也可以注册成服务提供者,这样可以用更多的功能:

$app['Dingo\Api\Transformer\Factory']->setAdapter(function ($app) {
    $fractal = new League\Fractal\Manager;

    $fractal->setSerializer(new League\Fractal\Serializer\JsonApiSerializer);

    return new Dingo\Api\Transformer\Adapter\Fractal($fractal);
});

上面这个不知道怎么用,其实可以自己建立一个Transformer文件夹,如针对User Model,声明UserTransformer 类,并继承TransformerAbstract 类(laravist上这么用)

返回格式 Response Formats

默认的数据以json进行前后端的传递,你也可以自己定义

API_DEFAULT_FORMAT=json

更高级的数据格式,如使用可以跨域访问的jsonp,需要在config/api.php中设置,或者是注册成服务提供者

Dingo\Api\Http\Response::addFormatter('json', new Dingo\Api\Http\Response\Format\Jsonp);

错误返回格式

这个非常重要,以前经常是抛出异常,错误提示非常不友好,不规范,一定要在config/api.php中定义好错误格式:下面是默认的,我们需要讨论讨论,搞个自己的错误格式

$app['Dingo\Api\Exception\Handler']->setErrorFormat([
    'error' => [
        'message' => ':message',
        'errors' => ':errors',
        'code' => ':code',
        'status_code' => ':status_code',
        'debug' => ':debug'
    ]
]);

开启Debug模式

API_DEBUG=true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容