YII2.0 API接口开发

首先先安装 YII2.0 高级模板(安装请参考其他教程)

准备

添加数据库配置 common/config/main-local.php

image

把backend目录 修改成api 修改目录下相关文件的命名空间 修改api/config/main.php下 id 和命名空间

image

看下项目的目录结构

image

建立AR类 参考开发手册 (可通过 GII生成)

image

开始

建立 api基类

/**

* api 基类

* Created by PhpStorm.

* Author: L

* Date: 2019/1/9

* Time: 9:33

*/

namespace api\controllers;

use Yii;

use yii\filters\ContentNegotiator;

use yii\filters\VerbFilter;

use yii\rest\ActiveController;

use yii\web\Response;

use yii\filters\auth\QueryParamAuth;

use yii\filters\auth\HttpBasicAuth;

use yii\filters\auth\CompositeAuth;

use yii\filters\Cors;

class ApiController extends ActiveController

{

public function behaviors()

{

$behaviors = parent::behaviors();

$behaviors['authenticator'] = [

'class' => CompositeAuth::className(),

'authMethods' => [

QueryParamAuth::className(),

],

// 写在optional里的方法不需要token验证

'optional' => [

'login'

],

];

// 这个是跨域配置

$behaviors['corsFilter'] = [

'class' => Cors::className(),

'cors' => [

'Origin' => ['*'],

// restrict access to

'Access-Control-Request-Method' => ['POST', 'GET', 'DEL'],

// Allow only POST and PUT methods

'Access-Control-Request-Headers' => ['Origin', 'X-Requested-With', 'Content-Type', 'Accept'],

// Allow only headers 'X-Wsse'

'Access-Control-Allow-Credentials' => true,

// Allow OPTIONS caching

'Access-Control-Max-Age' => 3600,

// Allow the X-Pagination-Current-Page header to be exposed to the browser.

'Access-Control-Expose-Headers' => ['X-Pagination-Current-Page'],

],

];

# 定义返回格式是:JSON

$behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;

return $behaviors;

}

}

在config/ main.php-> components 里添加 response, 这串代码的用途是让 api 请求均为 200,其他 http 状态码会以 json

数据返回

'class' => 'yii\web\Response',

'on beforeSend' => function ($event) {

$response = $event->sender;

$response->data = [

'success' => $response->isSuccessful,

'code' => $response->getStatusCode(),

'message' => $response->statusText,

'data' => $response->data,

];

$response->statusCode = 200;

},

],```

添加url美化

``` 'urlManager' => [

'enablePrettyUrl' => true,

'showScriptName' => false,

'enableStrictParsing' => false, // 是否执行严格的url解析

'suffix' => '.html', // api后缀

'rules' => [

'class'=>'yii\rest\UrlRule','controller'=>''

],

],

开启验证

图片.png

如果不需要可以注释掉

如果直接访问未应许的方法 会报401错误

图片.png

添加例外之后

图片.png

到此 第一个api应用接口编写完成

api版本控制

在开发过程中往往会涉及到版本的更新迭代

图片.png

这个就是版本的目录

准备

建立models目录

用gii去生成

图片.png

使用上图这个

修改api/config/main.php

图片.png

在控制下建立一个控制器 比如

图片.png

我建立了一个测试控制器

/**

* 文件功能

* Created by PhpStorm.

* Author: L

* Date: 2019/1/9

* Time: 9:14

*/

namespace api\modules\v1\controllers;

use api\controllers\ApiController;

use api\models\Category;

use yii\filters\auth\HttpBearerAuth;

class TestController extends ApiController

{

public $modelClass='api\models\Category';

public function actionList(){

return Category::find()->select('id,category_name')->where(['isdelete'=>0])->all();

}

public function actionLogin(){

return '123';

}

}

图片.png

成功

码云的地址链接直接git下来就行了

初学YII请多多包涵!!!

php 接口 2.0,YII 2.0 API接口开发相关推荐

  1. python 易盛行情_易盛信息9.0外盘期货行情数据API接口公共授权开发包例子代码...

    易盛信息9.0外盘期货行情数据API接口公共授权开发包例子代码 怎么才能获取到外盘期货行情数据API接口呢?不少朋友就会考虑到易盛9.0行情API接口,本身易盛就是一个软件提供商,提供行情API接口也 ...

  2. taobao.logistics.dummy.send( 无需物流发货处理 )接口,淘宝店铺发货API接口,淘宝r2接口,淘宝oAu2.0接口,淘宝订单发货接口

    taobao.logistics.dummy.send( 无需物流发货处理 )接口,淘宝店铺发货API接口,淘宝r2接口,淘宝oAu2.0接口,淘宝订单发货接口,接口可适用于,店铺发货,店铺订单同步, ...

  3. 淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享

    淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享如下 1.公共参数 名称 类型 必须 描述 key ...

  4. tmall.product.schema.get( 淘宝天猫商品发布API接口) ,淘宝商品发布API接口,淘宝店铺上传API接口,oAuth2.0店铺上传API接口

    tmall.product.schema.get( 淘宝天猫商品发布API接口) ,淘宝商品发布API接口,淘宝店铺上传API接口,oAuth2.0店铺上传API接口,可适用于店铺上传商品,店铺发货, ...

  5. 淘宝/天猫图片识别商品接口,1688图片识别商品API接口

    淘宝/天猫图片识别商品接口,1688图片识别商品API接口接口代码如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secret ...

  6. 1688店铺所有商品API接口(整店商品查询API接口)

    可以通过1688店铺所有商品API接口采集店铺所有商品详情页各项数据,包含商品标题,SKU信息.价格.优惠价,收藏数.销量.SKU图.标题.详情页图片等店铺内页面上有的数据均可以拿到,大家都知道,16 ...

  7. 拼多多关键词搜索采集商品数据接口,拼多多分类ID搜索采集商品销量接口,拼多多上货接口,拼多多商品列表API接口

    可以通过关键词搜索接口采集商品列表详情页各项数据或者是用分类ID搜索采集商品列表数据,包含商品标题,skuid.价格.优惠价,收藏数.销量.SKU图.标题.详情页图片等页面上有的数据均可以拿到,大家都 ...

  8. 拼多多:item_search-根据关键词取商品列表接口,拼多多关键词搜索API接口,拼多多上货API接口,拼多多API接口

    一.拼多多:item_search-根据关键词取商品列表接口,拼多多关键词搜索API接口,拼多多上货API接口代码如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key( ...

  9. 淘宝商品评价api接口,淘宝评论视频API接口,淘宝评论API接口(app、h5端)

    淘宝商品评价api接口,淘宝评论视频API接口,淘宝评论API接口(app.h5端)可通过商品id,获取商品评价信息.评价内容.买家秀图片.评论浏览量.评价视频.评价追评等页面上展示的数据均可以拿到, ...

  10. 获取淘宝购买到的商品订单物流API,买家订单物流API接口,淘宝买家订单API接口

    一.获取淘宝购买到的商品订单物流API,买家订单物流API接口,淘宝买家订单API接口代码对接如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接 ...

最新文章

  1. 学C++,能不能简单点?
  2. linux各目录的文件大小,Linux下查看文件大小和目录大小以及目录下文件的大小...
  3. eclipse导入jar包_在命令行上操作JAR,WAR和EAR
  4. python编程输入标准-青少年Python编程能力标准等级模拟考试
  5. oracle,导入,导出数据
  6. 挖掘 OSINT 金矿——实习生和社交媒体
  7. Linux命令基本格式(详解版)
  8. web自动化测试第12步:selenium中下拉框的解决方法(Select)
  9. 换行符‘/n’和回车符‘/r’ 区别
  10. 大数据给企业带来的好处有哪些
  11. ZStack实践汇 | 详解ZStack高级功能--裸金属服务部署实践
  12. BlueScreenView: 系统蓝屏分析工具
  13. iphone6 计算机无法检测到照相机,爱思助手无法识别设备怎么办 爱思助手无法识别设备解决方法...
  14. Python回归分析五部曲(三)—一元非线性回归
  15. 算法训练 调和数列问题
  16. 创业过程中技术真的那么重要吗
  17. 数据投毒攻防对抗技术-2.推荐系统中的数据投毒
  18. 地理信息系统GIS基础知识
  19. 利用python进行数据分析(四)
  20. Mac和Linux平台抓包工具的配置和使用

热门文章

  1. OpenStack Heat 如何来实现和支持编排
  2. linux log4j 空文件,log4j在linux上不生成日誌文件
  3. php 彩色标签插件,zblog php 彩色标签CSS源码
  4. react使用moment进行日期格式化
  5. 拉勾网《32个Java面试必考点》学习笔记之一------Java职业发展路径
  6. angularjs php登录验证,AngularJs表单验证的方法
  7. css变成块级元素_css块级元素垂直居中常用布局方式
  8. qt 删除文件夹_Qt 贪吃蛇制作(含源码)
  9. php xorcrevasse,XorEncrypt
  10. php配置默认index.php,Apache的vhost中配置默认访问入口index-test.php的方法(Yii)