安浪APP開發規範

接口與服務端開發約束

1. 統一返回格式,RESTful API

路徑格式:/api版本/模塊/控制器/方法/...php

api版本爲最高級別,服務端或者客戶端對應版本,若是客戶端或者服務端升級版本,則不匹配的api接口被廢棄
複製代碼

例:(ThinkPHP須要使用路由表,非默認的路由支架)數據庫

/v1/admin/user/signin //管理員登陸地址
    /v1/admin/user/signup //管理員註冊地址

    /v1/wechat/user/bind //微信綁定地址
    /v1/app/user/mobile_bind //APP端手機號綁定地址
複製代碼
//統一返回一個以下對象
object{
    status: int,//請求狀態碼 客戶端根據此代碼來決策是否繼續解析data下面的內容
    msg: string,//請求提示信息
    exp: long, //請求過時時間
    time: long, //數據生成時間
    data:[]/{} //該對象裝載 實際返回的數據,對象或者數組
}
複製代碼

實例一個登錄請求返回結果:api

POST /v1/app/user/sign
//登陸成功:
    {
        "status": 0,
        "msg": "登陸成功",
        "exp": 0,
        "time": 1537106828380,
        "data": {
            "user": {
                "id": 10000,
                "username": "jiankian",
                "nickname": "綠血貴族",
                "avatar": "https://app.anline.cn/uploaad/images/2018/09/15/s_212391239.png",
                "gender": "男",
                "area": 532324,
                "area_decode": "雲南省楚雄彝族自治州南華縣",
                "mobile": "13529513104",
                "tel": "0878-66668888",
                "age": 23,
                "birthday": "1999-11-11"
            },
            "token": "eyJpc3MiOiJKb2huI.eyJpc3MiOiJ.Kb2huIFd1IEp"


        }
    }
    //登陸失敗:
    {
        "status": -1,
        "msg": "登陸失敗,用戶不存在",
        "exp": 0,
        "time": 1537106828380,
        "data": null
    }
複製代碼
2. 客戶端請求方法

PHP僅使用 GETPOST 方法數組

3. 時間格式
統一使用Unix 時間戳格式,php時間戳格式長度無毫秒級,精確度*1000
MYSQL數據庫存儲時間戳爲BIGINT類型
複製代碼
4. 文件/圖片上傳

多圖和多文件上傳則遍歷此請求遍歷返回,此接口只接受單文件bash

統一文件/圖片/附件上傳接口,統一在數據庫存儲文件簽名、路徑、大小、類型等信息
複製代碼
5. 身份認證使用 jwt 鑑權

jws, jwe, jwk, jwa, jwt 使用jwt鑑權、同時生成的token字符串存儲在數據庫,對於必要的api請求地址,使用AES加密請求參數,防止被抓包竊取接口資源微信

服務端身份驗證:app

除了文件上傳接口之外的地方,(部分文件上傳組件不支持添加headers參數,只能使用拼加GET參數)
所有使用header攜帶token來鑑權
header字段name:`ANN-Token`
複製代碼
6. 數據編碼

標準編碼 UTF-8ui

7. 數據庫

數據庫版本:編碼

MySQL: 5.六、5.7  (5.7請容許驗證空字段)
複製代碼

數據庫編碼: 考慮客戶端emoji標籤字符,iOS和Android表情代碼,圖片存儲等加密

Database Encoding: utf8mb4
Database Collation: utf8mb4_unicode_ci複製代碼
相關文章
相關標籤/搜索