地址

测试地址使用 https://api.blog120.com

协议

  • 服务端使用https交互,测试模式使用https
  • 支持http2.0/http1.1/http1.0
  • 暂不支持 form-data的传值方式,请注意

交换文件格式

  • 交换文件格式为 json
  • 时间统一为UNIX时间戳,即1970年1月1日0时到现在所经过的毫秒数

客户端提交

  • 客户端提交数据为标准的JSON格式,上传文件等除外。
  • 示例:
    1. {
    2. "name": "van",
    3. "sex": 1,
    4. "password": "9218YUhzs7VBGH_UZ8qn=="
    5. }

服务端返回

  • 服务端返回标准格式如下:(例如请求服务端时间)
    1. {
    2. "status": 200,
    3. "result": 1515858850853,
    4. "code": "OK",
    5. "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiY2M5ZDFhNmEtYWJmMy00ODhlLThkZjItNjVmYTM0NDQ4YjQ5IiwibmFtZSI6ImVyaWMyIiwiZW1haWwiOiJzc2gyQGdtYWlsLmNvbSIsInBob25lIjoiMTM4MDAxMzgwMTAiLCJsYXN0TG9naW5UaW1lIjp7ImhpZ2giOjM1MywibG93Ijo3Mjc4NTg3Mn0sInJlZnJlc2hUaW1lIjp7ImhpZ2giOjM1MywibG93Ijo3Mjc4NTg3Mn0sImlhdCI6MTUxNjMzMTU5NSwiZXhwIjoxNTE4OTIzNTk1fQ.7JUQgE1uSuWTtRtkxCnbKFRSpSLVmtjtIZzknn237V8",
    6. "success": true
    7. }
  1. success字段用于指示是否成功
  2. status字段 恒为200(今后可能会取消) result 字段为真正所用信息 当错误发生时,服务器返回信息如下:
    1. {
    2. "success": false,
    3. "message": "Recource not found.",
    4. "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiY2M5ZDFhNmEtYWJmMy00ODhlLThkZjItNjVmYTM0NDQ4YjQ5IiwibmFtZSI6ImVyaWMyIiwiZW1haWwiOiJzc2gyQGdtYWlsLmNvbSIsInBob25lIjoiMTM4MDAxMzgwMTAiLCJsYXN0TG9naW5UaW1lIjp7ImhpZ2giOjM1MywibG93Ijo3Mjc4NTg3Mn0sInJlZnJlc2hUaW1lIjp7ImhpZ2giOjM1MywibG93Ijo3Mjc4NTg3Mn0sImlhdCI6MTUxNjMzMTU5NSwiZXhwIjoxNTE4OTIzNTk1fQ.7JUQgE1uSuWTtRtkxCnbKFRSpSLVmtjtIZzknn237V8",
    5. "code": "RESOURCE_NOT_FOUND",
    6. "status": 404
    7. }
  3. success字段用于指示是否成功
  4. message字段用于给出本地化信息(强烈不建议使用,因其内容可能随用户的语言而变动,也不可用于进行判断)
  5. code字段用于指示出错问题
  6. status与http状态基本一致(今后可能会取消)
  7. token字段用于获取下次访问的令牌。请每次都保存好,并于下次访问的时候提交。详情参考这里

特殊数据

一些非JS的原生数据将在此处展示

长整形

长整型在JS中不被支持。然而在时间表示、文件检索中非常常见(结果集往往超过了int的最大值) 长整型我们使用低位和高位表示:

  1. {
  2. "high": 353,
  3. "low": 72785872
  4. }

该数字表示 1516196241360

转换为整形计算方法如下:

  1. function toNumber() {
  2. if ((this.high & Long.SIGN_MASK) !== 0) {
  3. var l = ~this.low >>> 0;
  4. var h = ~this.high >>> 0;
  5. if (h > Long.HIGH_MAX || h == Long.HIGH_MAX && l == Long.MAX_UINT32) {
  6. return Number.NEGATIVE_INFINITY;
  7. }
  8. return -(h * Long.HIGH_MASK + l + 1);
  9. } else {
  10. if (this.high > Long.HIGH_MAX) {
  11. return Number.POSITIVE_INFINITY;
  12. }
  13. return this.high * Long.HIGH_MASK + this.low;
  14. }
  15. }
  16. Long.MAX_UINT32 = 0xFFFFFFFF;
  17. //
  18. // (high & SIGN_MASK) != 0 denotes a negative number;
  19. // that is, the most significant bit is set.
  20. //
  21. Long.SIGN_MASK = 0x80000000;
  22. //
  23. // When converting to a JavaScript Number we left shift the
  24. // high word by 32 bits. As that isn't possible using JavaScript's
  25. // left shift operator, we multiply the value by 2^32 which will
  26. // produce the same result.
  27. //
  28. Long.HIGH_MASK = 0x100000000;
  29. //
  30. // The maximum value for the high word when coverting to
  31. // a JavaScript Number is 2^21 - 1, in which case all
  32. // 53 bits are used.
  33. //
  34. Long.HIGH_MAX = 0x1FFFFF;