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. C#静态类、静态成员、静态方法

    一.作用 静态类和非静态类重要的区别是在于静态类不能被实例化,也就是说不能使用  new 关键字创建静态类类型的变量,防止程序员写代码来实例化该静态类或者在类的内部声明任何实例字段或方法. 用于存放不 ...

  2. FHQ-Treap 简介

    FHQ-treap 即非旋Treap,是一种短小精悍,功能丰富的平衡树. 据说它的效率介于 Treap 和 Splay 之间(可能是我的FHQ常数比较小,跑得比我的Treap还快). 它可以实现 Sp ...

  3. MQ系列3:RocketMQ 架构分析

    MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 1 背景 我们前面两篇对主流消息队列的基本构成和技术选型做了详细的分析.从本篇开始,我们会专注当下主流MQ之一的RocketMQ. 从 ...

  4. ArkUI 页面路由

    很多应用由多个页面组成,不同的页面承担着不一样的功能.比如,从音乐列表页面点击歌曲,跳转到该歌曲的播放界面.开发者需要通过页面路由将这些页面串联起来. 在 js -> default -> ...

  5. [Noi2010]能量采集 (莫比乌斯反演)

    [Noi2010]能量采集 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后, 栋栋再使用一个能量汇集机器把这些植物采集到的能 ...

  6. 【JavaWeb】学习路径1-背景

    JavaWeb系列也是一个非常庞大的系列,主要分为五个部分讲解: HTML JSP和Servlet CSS的讲解 JavaScrip的讲解 jQuery框架的讲解 学习完上述内容后,就能够基本了解一个 ...

  7. .NET 开源工作流: Slickflow流程引擎高级开发(十) -- BpmnJS流程设计器集成

    前言: 在Slickflow产品开发过程中,前端流程设计器经历了几个不同的版本(jsPlumb, mxGraph等),目的是为了在设计流程时的用户体验更加良好,得到客户的好评和认可.BpmnJS流程设 ...

  8. 全局索引与分区索引对于SQL性能影响的比较

    KingbaseES 提供了对于分区表 global index 的支持.global index 不仅提供了对于唯一索引功能的改进(无需包含分区键),而且在性能上相比非global index (l ...

  9. KingbaseES 导入导出blob列数据

    KingbaseES兼容了oracle的blob数据类型.通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据. 下面来验证一下各种数据存储在数据库中形式. 建表 create table ...

  10. 使用『jQuery』『原生js』制作一个导航栏动效 —— { }

    效果 HTML部分 <body> <nav> <div id="nav1">导航1</div> <div id="n ...