如果是一般的模板标签调用,可先忽略本节;直接跳转到 [模板&标签]({surl(book:tptag-tpls)}) 相关章节
### 场景分析
* 思想来源
- 正常情况下,使用上一节中的控制器模式,可返回 json,jsonp,已经可以满足APP-API的需求了;
- 而这里专门针对APP-API做一些优化处理,目的是让代码更简洁!
- 另提示:之前 贴心猫开发过 REST-API,主要用于开放给第三方调用,有频率限制,有兴趣可了解:
* SAPI定义/需求
- Server-API 的缩写,即 服务端-API,供API,APP小程序 或h5调用;
- 输出json/jsonp纯数据,无模板视图,不需要配置 `/root/cfgs/sycfg/sy_vopcfg.php`;
- 很多场景需要设置跨域;
- 很多场景需要类似: AccessKeyId/AccessKeySecret 认证
- 可能需要版本管理:可能需要:v1.0, v2.0 ... 等多个版本同时存在
### 文件结构
```
+ /views/sapi/
| + /comm/ (通用类库方法)
| | --- baseApi.php
| | --- ...
| + /mds/ (md文档)
| | --- sys-about.md
| | --- ...
| + /nver/ (默认最新版本)
| | --- bextApi.php ([当前版本]通用API)
| | --- cargoApi.php (产品API)
| | --- infoApi.php (扩展信息API)
| | --- newsApi.php (新闻API)
| | --- rootApi.php (首页API)
| | --- ...
| + /v3.6/ (具体版本)
| | --- .gitkeep.txt
| | --- ...
```
### SAPI规范
* 目录结构如上
- 一个版本,一个目录;comm, mds 为通用目录
- 一个模型 一个文件,`Api.php`结尾;首页规定为 root模型
- 一个模型 可能有多个子模型,如新闻模型 含有 新闻模型,新闻评论模型
* 代码如下
- 代码文件:{views}/sapi/下 (N个子目录)
- [查看代码]({surl(demo:home-cmap)}#g_sapi)
* 参数
- mkv=news, mkv路由参数,必选,默认为 `mkv=root-home`
- debug=1/0, 调试:不要debug或debug=0-常规状态, 1-调试
- ver=nver, 版本(暂未用)
- sk={sk}, 认证串(暂未用)
{md:"home/inc-sapi"}
-End-