# 接口研发
* * * * *
在前面介绍章节的接口介绍中已经介绍了接口文档,错误码设计,Token。这里就不重复讲解了,直接来实战开发一个友情链接接口。
* * * * *
### 友情链接的接口逻辑层
此处演示友情链接接口就不新加文件了,若有需要童鞋们可以自己新建文件。
先来完成api模块逻辑类中的友情链接方法,此处放在Common文件:
~~~
/**
* 友情链接
*/
public function getBlogrollList()
{
return $this->modelBlogroll->getList([DATA_STATUS_NAME => DATA_NORMAL], true, 'sort desc,id asc', false);
}
~~~
简单粗暴的直接上代码才是最有效的,意思就是在逻辑层中通过友情链接模型查询数据状态正常的友情链接列表。
就这么简单,下面再看看接口控制器层。
* * * * *
### 友情链接的接口控制器层
~~~
/**
* 友情链接
*/
public function getBlogrollList()
{
return $this->apiReturn($this->logicCommon->getBlogrollList($this->param));
}
~~~
搞定。。。加到Common控制器就好了。 OneBase研发接口简直是 事半功倍。
下面将接口通过后台加进去,然后测试下接口是否正常。
先增加一个超级简单的友情链接列表接口。
![](https://box.kancloud.cn/cbf57c3186a3ccda82a27f3c031aa18c_1893x939.png)
测试一下友情链接接口是否正常。
![](https://box.kancloud.cn/aa070adc5bbe93a0e4746440f035e417_1767x905.png)
测完,一切正常,接口返回的数据这里就不一一解释了蛤,就是一些接口内置返回字段和自己逻辑层返回的数据。
* * * * *
### 聚合接口
~~~
<?php
// +---------------------------------------------------------------------+
// | OneBase | [ WE CAN DO IT JUST THINK ] |
// +---------------------------------------------------------------------+
// | Licensed | http://www.apache.org/licenses/LICENSE-2.0 ) |
// +---------------------------------------------------------------------+
// | Author | Bigotry <3162875@qq.com> |
// +---------------------------------------------------------------------+
// | Repository | https://gitee.com/Bigotry/OneBase |
// +---------------------------------------------------------------------+
namespace app\api\controller;
/**
* 聚合接口控制器
*/
class Combination extends ApiBase
{
/**
* 首页接口
*/
public function index()
{
$article_category_list = $this->logicArticle->getArticleCategoryList();
$article_list = $this->logicArticle->getArticleList($this->param);
return $this->apiReturn(compact('article_category_list', 'article_list'));
}
/**
* 详情接口
*/
public function details()
{
$article_category_list = $this->logicArticle->getArticleCategoryList();
$article_details = $this->logicArticle->getArticleInfo($this->param);
return $this->apiReturn(compact('article_category_list', 'article_details'));
}
}
~~~
上面代码就是聚合接口的类,可以看到首页接口中包含了文章分类数据和文章列表数据,文章详情接口中 包含了 文章分类数据 和 文章详情数据。
为什么需要聚合接口?
因为APP端发起HTTP请求是非常耗费资源的,通俗易懂就是速度很慢,如果一个首页数据展示 都需要 十几次请求接口拿数据的话。。可想而知流量大的压根就打不开了吧。
OneBase聚合接口是将逻辑层返回的数据进行组合,然后在一个接口中进行返回,并不要求只能一个接口返回,而是越少越好。
- 序言
- 基础
- 安装环境
- 安装演示
- 规范
- 目录
- 介绍
- 后台介绍
- 后台首页
- 会员管理
- 系统管理
- 系统设置与配置管理
- 菜单管理
- 系统回收站
- 服务管理
- 插件管理
- 文章管理
- 接口管理
- 优化维护
- SEO管理
- 数据库
- 文件清理
- 行为日志
- 执行记录
- 统计分析
- 接口介绍
- 接口文档
- 错误码设计
- Token介绍
- 前台介绍
- 架构
- 架构总览
- 生命周期
- 入口文件
- 模块设计
- 依赖注入
- 控制器架构
- 逻辑架构
- 验证架构
- 服务架构
- 模型架构
- 行为架构
- 插件架构
- 配置
- 配置介绍
- 配置加载
- 配置扩展
- 请求
- 请求信息
- 日志
- 后台行为日志
- 系统执行日志
- 框架日志
- 数据
- 数据库设计
- 数据字典
- 数据库操作
- 事务控制
- 混合操作
- 实战
- 控制器
- 逻辑与验证
- 视图与模型
- 插件研发
- 服务研发
- 接口研发
- 杂项
- 数据导入导出
- 二维码条形码
- 邮件发送
- 云存储服务
- 支付服务
- 短信服务
- 微信分享
- 生成海报
- 聊天室
- PJAX
- Demo
- Widget
- 附录
- 常量参考
- 配置参考
- 函数参考
- 进阶
- Redis
- 自动缓存
- 全自动缓存
- 索引
- 数据签名
- 全自动事务
- 队列