🦋
Butterfly 用户手册
  • Introduction
  • 一 前言
  • 二 开始
    • 安装部署
    • 五分钟体验指南
    • 单机使用手册
    • 应用规范
      • handler specs
      • middleware specs
      • xingqiao_plugin specs
      • yiqiu_program specs
  • 三 客户端功能
    • MySQL 原生协议
    • MySQL ORM
    • Redis 原生协议
      • redis_config
      • redis_tls
    • Redis ORM
    • Redis mcpack
    • Localcache
    • Kazoo
  • 四 应用(通用服务)
    • API JSON 规范
    • 异步任务 BaiChuan(百川)
    • 任务调度 RuQi(如期)
    • 任务编排 XingQiao(星桥)
    • 配置管理 WuXing(五行)
    • 运筹决策 BaiCe(百策)
  • 五 部署运维
    • 单机容器化部署
    • 监控
    • 异常排查
      • CPU Load spike every 7 hours
    • 升级
    • 安全
    • 其他
  • 六 前端
    • butterfly_template
    • butterfly_fe
    • butterfly-admin(json2web)
      • amis
      • sso
      • pangu
    • NoahV
    • PyWebIO
  • 七 潘多拉魔盒
    • 装饰器
      • localcache_decorator
      • retry_decorator
      • custom_decorator
      • command2http_decorator
    • 算法
      • 算法-分位数
      • 算法-变异系数
    • 实用工具
      • host_util
      • shell_util
      • http_util
      • time_util
      • random_util
      • concurrent
      • jsonschema
      • blinker
      • toml
      • command_util
      • config_util
      • picobox
      • 对称加密
        • des
        • aes
      • ascii_art
        • ttable
        • chart
      • business_rules
      • python-mysql-replication
      • dict_util
    • 中间件
      • middleware_status
      • middleware_whitelist
    • test_handler.py
  • 八 最佳实践
    • 分布式架构
    • Code practice
    • Log practice
    • Daemon process
  • 附录
Powered by GitBook
On this page
  • 传输协议
  • 参数、返回值类型
  • 请求
  • 返回
  • 通用错误码
  • 开发调试辅助工具
  1. 四 应用(通用服务)

API JSON 规范

传输协议

HTTP 或 HTTPS

HTTP支持版本 1.1

参数、返回值类型

整数:没有特殊说明均为64位

字符串:不定长

请求

URL

schema://domain/module-name/sub-location/api-name

schema HTTP 或 HTTPS

domain xserver的IP或域名

module-name 该 api 接口所属的模块名

sub-location 该 api 在该模块的路径前缀

api-name api 名字

Headers

Cookie: token=fgKCuRA6RBg 可以使用 Cookie 传递某些参数,建议只在浏览器环境中使用

X-Device: xxx 可选,客户端设备名。 安卓为:Android iPhone为:iPhone PC客户端为:PC WEB端为:WEB

Body

使用 JSON 编码的请求参数,形式如下:

{"param1": "value1", "param2": "value2"}

具体参数名称和值跟据具体 API 而定

例外情况:

进行二进制数据上传的接口(如文件上传)

  • 参数置于 URL-QueryString 中

  • Request Body 为上传文件的二进制数据

  • 二进制数据长度置于 Header 的 Content-Length 字段

返回

Status

总是 200

例外情况:

  • Web 服务器异常返回 500

(接口调用产生的逻辑错误通过 Json 返回)

Headers

RequestId:请求ID

Set-Cookie:设置 Cookie,浏览器环境中使用

Body

使用 JSON 编码的返回结果,形式如下:

{"stat": "OK", "return-value1": "value1", "return-value2": "value2"}

stat 字段为接口调用的返回结果,因不同 API 而定。

例外情况:

返回二进制数据的接口(如文件下载)

  • 接口调用产生的逻辑错误通过 HTTP Status 返回

    • 400:参数错误

    • 403:没有权限

    • 404:对象没有找到

    • 500:其它错误

  • Content-Length 返回头标识返回二进制数据的长度

  • Response Body 为二进制数据

通用错误码

错误码
描述
处理建议

OK

成功

ERR_BAD_PARAMS

参数错误

ERR_SERVER_EXCEPTION

服务器内部错误

ERR_FORBIDDEN

没有权限,禁止访问

ERR_USER_NOT_LOGIN

用户没有登录

ERR_TOKEN_NOT_FOUND

找不到token信息

ERR_TOKEN_EXPIRED

token过期

发生错误返回时,可以检查返回的 json 中是否有 errText 字段,errText 用于描述发生此错误时,建议向用户界面展现的文字。

开发调试辅助工具

  • 使用 curl 进行接口请求返回查看

  • 使用 chrome 浏览器的 development tools

Previous四 应用(通用服务)Next异步任务 BaiChuan(百川)

Last updated 1 year ago

使用 chrome 的 插件

fe-helper