加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

yii2项目拭魅战之restful api授权验证详解

发布时间:2021-01-17 23:22:58 所属栏目:编程 来源:网络整理
导读:媒介 什么是restful气魄威风凛凛的api呢?我们之前有写过来先容其观念以及根基操纵。 既然写过了,那本日是要说点什么吗? 这篇文章首要针对现实场景中api的陈设来写。 我们本日就来大大的侃侃那些年api碰着的授权验证题目!独家干活,假如看完有所受益,记得不要忘

在postman中我们可以以何种数据范例输出的接口的数据,可是,有些人发明,当我们把postman模仿哀求的地点copy到赏识器地点栏,返回的又却是xml名目了,并且我们显着在UserProfile操纵中返回的是属组,怎么回事呢?

这着实是官方捣的鬼啦,我们一层层源码追下去,发此刻yiirestController类中,有一个 contentNegotiator举动,该举动指定了应承返回的数据名目formats是json和xml,返回的最终的数据名目按照哀求头中Accept包括的起首呈此刻formats中的为准,你可以在yiifiltersContentNegotiatornegotiateContentType要领中找到谜底。

你可以在赏识器的哀求头中看到

Accept:

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

即application/xml起首呈此刻formats中,以是返回的数据名目是xml范例,假如客户端获取到的数据名目想凭证json举办理会,只必要配置哀求头的Accept的值便是application/json即可

有同窗也许要说,这样太贫困了,啥年月了,谁还用xml,我就想处事端输出json名目标数据,怎么做?

步伐就是用来办理题目滴,来看看怎么做。apiconfigmain.php文件中增进对response的设置

[ 'class' => 'yiiwebResponse','on beforeSend' => function ($event) { $response = $event->sender; $response->format = yiiwebResponse::FORMAT_JSON; },

云云,不管你客户端传什么,处事端最终输出的城市是json名目标数据了。

自界说错误处理赏罚机制

再来看其它一个较量常见的题目:

你看我们上面几个要领哈,返回的功效是各式百般的,这样就给客户端理会增进了困扰,并且一旦有非常抛出,返回的代码还都是一堆一堆的,头疼,怎么办?

说到这个题目之前呢,我们先说一下yii中先关的非常处理赏罚类,虽然,有许多哈。好比下面常见的一些,其他的本身去发掘

现实开拓中列位要擅长去操作这些类去捕捉非常,抛出非常。说远了哈,我们回到重点,来说怎样自界说接口非常相应可能叫自界说同一的数据名目,好比向下面这种设置,同一相应客户端的名目尺度。

[ 'class' => 'yiiwebResponse','on beforeSend' => function ($event) { $response = $event->sender; $response->data = [ 'code' => $response->getStatusCode(),'data' => $response->data,'message' => $response->statusText ]; $response->format = yiiwebResponse::FORMAT_JSON; },

说道了那么多,本文就要竣事了,刚开始打仗的同窗也许有一些蒙,不要蒙,逐步消化,先知道这么个意思,相识下restful api接口在整个进程中是怎么用token授权的就好。这样真正现适用到的时辰,你也能触类旁通!

总结

以上就是这篇文章的所有内容了,但愿本文的内容对各人的进修可能事变能带来必然的辅佐,假若有疑问各人可以留言交换,感谢各人对编程之家的支持。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读