基于Laravel的API服务端架构代码
来源:互联网 发布:美食大战老鼠卡片数据 编辑:程序博客网 时间:2024/06/06 20:36
API服务端架构代码
源码
http://flc.ren/2016/08/549.html
https://github.com/flc1125/Ap...
部署说明
现有API基于laravel框架开发,本次介绍也针对laravel。可根据文档自行调整,以适用其他框架下使用
数据库相关
执行如下SQL语句
CREATE TABLE `prefix_apps` ( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '自增长', `app_id` VARCHAR(60) NOT NULL COMMENT 'appid', `app_secret` VARCHAR(100) NOT NULL COMMENT '密钥', `app_name` VARCHAR(200) NOT NULL COMMENT 'app名称', `app_desc` TEXT COMMENT '描述', `status` TINYINT(2) DEFAULT '0' COMMENT '生效状态', `created_at` INT(10) NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` INT(10) NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `app_id` (`app_id`), KEY `status` (`status`)) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='应用表';
目录相关
app/Services/ApiServer/
API接口目录app/Services/ApiServer/Response/
apps数据库模型app/Models/App.php
路由配置app/Http/routes.php
API入口控制器app/Http/Controllers/Api/RouterController.php
API文档及开发规范
API调用协议
请求地址及请求方式
请求地址:
/api/router
;请求方式:
POST
/GET
公共参数
业务参数
API调用除了必须包含公共参数外,如果API本身有业务级的参数也必须传入,每个API的业务级参数请考API文档说明。
签名规则
对所有API请求参数(包括公共参数和请求参数,但除去
sign
参数),根据参数名称的ASCII码表的顺序排序。如:foo=1, bar=2, foo_bar=3, foobar=4
排序后的顺序是bar=2, foo=1, foo_bar=3, foobar=4
。将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4。
把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。如果使用
MD5
算法,则需要在拼装的字符串前后加上app的secret
后,再进行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret)将摘要得到的字节结果使用大写表示
返回结果
// 成功{ "status": true, "code": "200", "msg": "成功", "data": { "time": "2016-08-02 12:07:09" }}// 失败{ "status": false, "code": "1001", "msg": "[app_id]缺失"}
API开发规范
API接口命名规范(method)
接口名称统一小写字母
多单词用
.
隔开对应的类文件(目录:
app/Services/ApiServer/Response/
);以接口名去.
,再首字母大写作为类名及文件名。如接口名:user.add
,对应的类文件及类名为:UserAdd
接口命名规范
命名字母按功能或模块从大到小划分,依次编写;如后台用户修改密码:'admin.user.password.update'
字母最后单词为操作。查询:
get
;新增:add
;更新:update
;删除:delete
;上传:upload
;等
错误码
错误码配置:
app/Services/ApiServer/Error.php
命名规范:
http状态码
公共错误码4公共参数错误相关的错误码业务错误码6+2位业务码+4位错误码,不足补位现有错误码:
API DEMO 示例
文件路径:app/Services/ApiServer/Response/Demo.php
转:https://segmentfault.com/a/1190000006178269
- 基于Laravel的API服务端架构代码
- 服务端架构技术——基于OSGI服务端的架构设计和实现
- 基于 springMVC 的 RESTful HTTP API 实践(服务端)
- 基于 springMVC 的 RESTful HTTP API 实践(服务端)
- 基于typeScript请求服务端的js-api-sdk 这种filter
- laravel Api 的速查表
- 服务端常用的架构
- 基于select的服务端
- VB6 基于API的远程开机代码
- Laravel 5 中使用 JWT(Json Web Token) 实现基于API的用户认证
- 基于Laravel开发的CMS
- 基于typeScript请求服务端的js-api-sdk统一封装思路
- 基于Backbone.js,REST技术的瘦服务端架构介绍(转)
- 服务端开发笔记二:基于pomelo的分布式手游架构
- 基于Netty3的RPC架构笔记2之服务端与客户端
- web服务端的架构演变
- laravel --api
- 基于TCP的服务端/客户端
- xcode调试时遇到一个崩溃问题
- 火柴棒等式
- 联想Y50p预装win8系统改为win7
- bug,不该怕~敢敢test就是了
- 数的划分
- 基于Laravel的API服务端架构代码
- 什么叫做敏捷开发?
- MATLAB-2015a安装
- 传纸条
- 博士研究生,研究化学品,所有失败品,皆可称为毒品。成功获得销售的药品也是存有毒的。
- vim 快捷键
- 复杂视频格式转换
- 寻找道路
- 扫雷游戏