数据接口(API)开发须知

传统API与RESTful API

传统APIandroid

获取用户信息  get   /api/user/read
更新用户信息  post  /api/user/update
新增用户信息  post  /api/user/add
删除用户信息  post  /api/user/delete

Restful APIios

获取用户信息  get     /api/user/1
更新用户信息  put     /api/user/1
新增用户信息  post    /api/user
删除用户信息  delete  /api/user/1

区别json

相同:数据通常以json或xml格式返回
不一样:
Restful API:操做的是资源;增删改查对应http动词
传统API :   只有get/post动词;

HTTP状态码

注意:API接口返回的 JSON数据 中包含的是业务状态码,并不是HTTP状态码api


2XX系列安全

200 请求成功(做用于GET方式)
201 建立成功(做用于POST方式)
204 更新/删除成功(做用于PUT/Delete方式)

4XX系列服务器

400 无效请求(参数错误或不合法)
401 缺乏用户认证参数,好比说,请求的时候没有带上 Token 等。
403 没有权限
404 请求资源不存在
405 请求方法(get/post/put/delete)不容许使用

5XX系列数据结构

500 服务器内部错误(泛用,无需区分具体错误)
501 功能没有实现

API数据结构

返回的JSON数据结构 必须由团队统一约定,通常必须包含3项:业务状态码、消息、数据app

//API 返回数据结构以下
{
    "status": 0,
    "msg": "OK",
    "result": []
}

封装一个方法格式化通用API接口数据结构工具

function formatDataByJson($status, $msg, $data=[], $httpCode=200){

    $result = [
        'status' => $status,
        'msg' => $msg,
        'data' => $data
    ];

    return json($result, $httpCode);
}

API异常处理

API数据安全

  • 安全问题

黑客一般有2种手法获取数据:
一、抓包
二、反编译post

一、请求地址、头部参数、体部数据暴露(利用加密、有效时间、惟一性解决)
二、返回数据明文暴露(可经过加密解决)
三、担忧反编译(使用防反编译工具打包)
四、XSS脚本跨站攻击
  • 根据安全问题,有2种生成Token方式

由客户端生成Token

客户端工程师和服务器端工程师约定好规则,客户端工程师把约定好规则的加密Token传给服务器端,服务器端再按照约定好规则解密就好。

由服务端生成Token

在请求任何API接口以前,都必须先请求一个获取服务器生成的Token的API接口,获取Token以后,才请求其余API接口

Token是 请求时间+型号+设备号+系统类型 加密(aes加密)

  • HTTP头部存储基本参数
一、token(加密校验参数)必须填
二、content-type (application/json) 必须填
---------------------如下为选填,无关紧要,任由开发者本身定义
三、app-type (app类型:android/ios/pc)
四、did  (设备号)
五、version  (版本)
六、model  (型号)
相关文章
相关标签/搜索