1.基类

    定义返回信息

    protected $user;                  //用户表
protected $token; //用户token
protected $isSuccess = FALSE; //状态是否成功
protected $msg = '操作成功'; //返回给开发者的数据
protected $Usermsg; //返回给用户的数据
protected $api_code; //接口名
protected $code = 0; //状态码
protected $results; //返回数据

  

定义返回成功的快捷信息

// 输出正确数据
public function restSuccess($msgCode = '0|操作成功')
{
$this->isSuccess = True;
$messageCode = explode('|',$msgCode);
@$this->code = $messageCode[0];
@$this->msg = $messageCode[1];
unset($messageCode);
}

定义返回失败的快捷信息

  // 输出错误数据
public function restError($msgCode = '1|服务器繁忙|输入数据有误')
{
$this->isSuccess = False;
$messageCode = explode('|',$msgCode);
$this->code = $messageCode[0];
@$this->Usermsg = $messageCode[1];
@$this->msg = $messageCode[2];
unset($messageCode);
}

定义整合的返回信息

// 整体输出返回数据
public function response()
{
$data['api_code'] = $this->api_code;
$data['code'] = $this->code;
$data['isSuccess'] = $this->isSuccess;
$data['msg'] = $this->msg;
$data['Usermsg'] = $this->Usermsg;
$data['results'] = $this->results;
return $data;
}

API健壮性

 // 检测设备
private function checkDevice()
{
if(!isMobile()){
$this->restError(config('errorMsg.notMobile'));
echo json_encode($this->response());
exit();
} } //检测请求方式
private function checkMethod()
{
if(!$this->request->isPost()){
$this->restError(config('errorMsg.notMethod'));
echo json_encode($this->response());
exit();
}
}

定义构造方法,使用TP5内置方法

public function _initialize()
{
parent::_initialize(); $this->api_code = input('api_code'); $this->checkDevice(); // 检查设备
$this->checkMethod(); //检测请求方式
$this->checkLogin(); //检测登录
//$this->checkApi(); // 检测APi
}

2.缓存

// 浏览帖子
public function index()
{
$info = cache('postindex');//查找缓存 if(!$info){//如果缓存没有数据
$list = new Mpost;//查找数据库
$info = $list->i_ndex();
cache('postindex',$info,3600);//设置缓存
}
$this->assign('arr', $info);
return view('postd/index');
}

...

API接口笔记的更多相关文章

  1. Flask框架学习笔记(API接口管理平台 V2.0)

    博主今天把API接口管理平台发布到github了,这次是更新一些功能 如支持本地数据库sqlite3.优化了数据结构 技术方面跟之前V1.0相同,只增加生产本地数据:但是为了支持层级的参数,修改了数据 ...

  2. Flask框架学习笔记(API接口管理平台 V1.0)

    今天博主终于完成了API接口管理平台,最后差的就是数据库的维护, 博主这里介绍下平台的设计原理,首先基于python,利用flask的web框架+bootstrap前端框架完成,先阶段完成了前台展示页 ...

  3. Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现

    最近需要设计一个API服务器,想要把API接口搞得规范一下,就通过网上搜集到了一些资料,以下便是自己的一些理解以及相关的具体实现 本文采用的是spring boot+maven的方案 restful规 ...

  4. 转载-常用API接口签名验证参考

    原文地址: http://www.cnblogs.com/hnsongbiao/p/5478645.html 写的很好,就做个笔记了.感谢作者! 项目中常用的API接口签名验证方法: 1. 给app分 ...

  5. 常用精品API接口汇总

    下面列举了100多个国内常用API接口,并按照 笔记.出行.词典.电商.地图.电影.即时通讯.开发者网站.快递查询.旅游.社交.视频.天气.团队协作.图片与图像处理.外卖.消息推送.音乐.云.语义识别 ...

  6. 常用API接口汇总

    下面列举了100多个国内常用API接口,并按照 笔记.出行.词典.电商.地图.电影.即时通讯.开发者网站.快递查询.旅游.社交.视频.天气.团队协作.图片与图像处理.外卖.消息推送.音乐.云.语义识别 ...

  7. 【转载】常用精品API接口汇总

    原文链接戳这里~~ 下面列举了100多个国内常用API接口,并按照 笔记.出行.词典.电商.地图.电影.即时通讯.开发者网站.快递查询.旅游.社交.视频.天气.团队协作.图片与图像处理.外卖.消息推送 ...

  8. 从零开始搭建.NET Core 2.0 API(学习笔记一)

    从零开始搭建.NET Core 2.0 API(学习笔记一) 一. VS 2017 新建一个项目 选择ASP.NET Core Web应用程序,再选择Web API,选择ASP.NET Core 2. ...

  9. Node教程——API接口开发(MangoDB+Express)

    一.大纲 大纲: 关于架构, 首先我们的有一个app.js这个就是根路由起点,用来最初的打入口 它的功能有: 1.1 引入模块创建基础的网站服务器, 1.2 导入bodyPasser,过滤还有处理我们 ...

随机推荐

  1. 6.22 NOI 模拟

    \(T1\)递归 给出 \(Thue-Morse\) 序列的定义三 每次 \(0\rightarrow 01\),\(1\rightarrow 10\) \(0\rightarrow 01 \righ ...

  2. RGBColor类定义

    这个类主要是颜色操作,操作详细原理如下图: 类声明: class RGBColor { public: RGBColor(); ~RGBColor(); RGBColor(ldouble a); RG ...

  3. OpenSSF的开源软件风险评估工具:Scorecards

    对于IT从业者来说,Marc Andreessen 十年前提出"软件吞噬世界"的观点早已耳熟能详.无论是私人生活还是公共领域,软件为现代社会的方方面面提供动力,对现代经济和国家安全 ...

  4. 浅谈MySQL的sql_mode

    SQL mode 今天我们来分享一下MySQL的SQL mode , 这也是我们比较容易忽略的一点,我们在一开始安装数据库的时候其实就要先考虑要保留哪些SQL mode,去除哪些,合理的配置能够减少很 ...

  5. MybatisPlus核心功能——实现CRUD增删改查操作 (包含条件构造器)

    CRUD 官方文档:https://baomidou.com/ (建议多看看官方文档,每种功能里面都有讲解)[本文章使用的mybatisplus版本为3.5.2] 条件构造器 一般都是用service ...

  6. HTTPS 一定是安全的吗?

    大家好,我是小林. 上周有位读者在面字节时被问道这么一个问题:HTTPS 一定安全可靠吗? 这个问题的场景是这样的:客户端通过浏览器向服务端发起 HTTPS 请求时,被「假基站」转发到了一个「中间人服 ...

  7. day25--Java集合08

    Java集合08 15.HashTable 15.1HashTable的基本介绍 存放的元素是键值对:即K-V HashTable的键和值都不能为null HashTable的使用方法基本上和Hash ...

  8. java方法---可变参数

    可变参数 在方法的声明中,在指定参数类型后面加一个...(省略号) 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数必须在它之前声明:

  9. 【Java】学习路径51-线程组

    平时创建线程的时候,系统会默认为线程分组. 我们可以使用 ThreadGroup tg1 = t1.getThreadGroup(); 取得t1的线程组对象. 然后使用getName获得线程组名称. ...

  10. Jenkins+SpringCloud(多模块)+Vue项目详细配置

    一.Jenkins安装及所需插件安装 安装过程略. 我这用到工具包括JDK.Git.Maven.NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统管理 >全局工 ...