home-code

示例❤源码



如果是一般的模板标签调用,可先忽略本节;直接跳转到 [模板&标签]({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-