api.md 11 KB

前后端接口文档

本项目前后端接口规范和接口文档。

本项目没有采用Swagger技术,开发者可以自行集成。

注意:

  1. 以下API部分基于nideshop开源项目的API设计;
  2. 以下API是参考API,可能不是很合理,欢迎开发者交流。
  3. 接口文档处于开发中,如果发现接口描述和接口实际不对应,欢迎PR或者报告。

1 前后端接口规范

1.1 请求格式

这里没有采用RESTful风格的接口,而是定义具体语义的接口。 目前只使用GETPOST来表示请求内容和更新内容两种语义。

1.1.1 GET请求

GET API_URL?params

例如

GET /home/index

或者

GET /goods/list?page=1&limit=10

1.1.2 POST更新

POST API_URL
{
    body
}

例如

POST /cart/clear

或者

POST /goods/star
{
    id: 1
}

1.1.3 分页请求参数

当GET请求后端获取数组数据时,需要传递分页参数。

例如

GET /goods/list?page=1&limit=10&sort=add_time&order=desc

本项目的通用分页请求参数统一传递四个:

page: 请求页码
limit: 每一页数量
sort: 排序字段
order: 升序降序
  • page, 和通常计算机概念中数组下标从0开始不同,这里的page参数应该从1开始, 1即代表第一页数据.
  • limit
  • sort, 例如'add_time'或者'id'.
  • order, 只能是"desc"或者'asc'.

此外,这里四个参数是可选的,后端应该设置默认参数,因此即使前端不设置, 后端也会自动返回合适的对象数组响应数据。

注意:

这里的参数是需要后端支持的,在一些场景下,例如数组对象是组装而成, 有可能sort和order不支持。

讨论:

有些请求后端是所有数据,这里page和limit可能设置是无意义的。但是 仍然建议加上两个参数,例如page=1, limit=1000。

也就是说,请求后端数组数据时,同一传递四个分页参数,可能是比较良好的做法。

1.2 响应格式

Content-Type: application/json;charset=UTF-8

{
    body
}

而body是存在一定格式的json内容:

{
    errno: xxx,
    errmsg: xxx,,
    data: {}
}

1.2.1 失败异常

{
    errno: xxx,
    errmsg: xxx
}
  • errno是错误码,具体语义见1.3节。
  • errmsg是错误信息。

1.2.2 操作成功

{
    errno: 0,
    errmsg: "成功",,
}

1.2.3 普通对象

{
    errno: 0,
    errmsg: "成功",,
    data: {}
}

1.2.4 数组对象

{
    errno: 0,
    errmsg: "成功",,
    data: {
        list: [],
        total: XX
    }
}

list是对象数组,total是总的数量。

1.3 错误码

1.3.1 系统通用错误码

1.3.2 商场业务错误码

1.3.3 管理后台业务错误码

1.4 Token

1.4.1 Header&Token

1.4.2 商场Header

1.4.3 管理后台Header

1.5 版本控制

API应该存在版本控制,以保证兼容性。

由于仍处于开发中,因此目前未引入版本控制。

1.6 API格式

这里定义一个API的格式:

应用场景

xxx

接口链接

xxx

请求参数

xxx

响应内容

xxx

错误码

xxx

1.7 API预览

接下来会分别从用户层面和管理员层面构建商场API服务和管理后台API服务。

商场API服务涉及

  • 安全服务
  • 首页服务
  • 类目服务
  • 商品服务
  • 购物车服务
  • 订单服务
  • 会员服务
  • 收货地址服务
  • 品牌商服务
  • 收藏服务
  • 评论服务
  • 优惠券服务
  • 反馈服务
  • 足迹服务
  • 团购服务
  • 帮助服务
  • 搜索服务
  • 专题服务
  • 对象存储服务

管理后台API服务涉及:

2 商城API服务

2.1 安全服务

2.1.1 注册

2.1.2 登录

2.1.3 账号信息

2.1.4 退出

2.1.5 注册验证码

2.1.6 验证码

2.1.7 账号密码修改

2.1.8 微信手机号码绑定

2.1.9 手机号码修改

2.1.10 账号信息修改

2.2 首页服务

2.2.1 首页数据

2.3 类目服务

2.4 商品服务

2.5 购物车服务

2.6 订单服务

2.7 会员服务

2.8 收货地址服务

2.8.1 收货地址列表

应用场景

请求用户的收货地址列表

接口链接

GET /wx/address/list

请求参数

userId: 用户ID

响应结果

{
    errno: 0,
    errmsg: "成功",,
    list: [AddressVo]
    page:  xx
    limit: xx
    total: xx
}

错误码

2.8.2 收货地址详情

应用场景

请求用户的收货地址详情

接口链接

GET /wx/address/detail

请求参数

userId: 用户ID
id: 收货地址ID

响应结果

{
    errno: 0,
    errmsg: "成功",,
    data: {
        id: 收货地址ID,
        name: 收货人,
        tel: 手机号
        province: 省级行政区域,
        city: 市级行政区域,
        county: 区级行政区域,
        addressDetail: 具体地址,
        areaCode: 地址编码,
        postalCode: 邮政编码
        isDefault: 是否默认
    }
}

错误码

2.9 品牌商服务

2.9.1 品牌商列表

应用场景

访问品牌商列表信息

接口链接

GET /wx/brand/list

请求参数

page: 请求页码
limit: 每一页数量
sort: 排序字段
order: 升序降序

响应内容

{
  "errno": 0,
  "data": {
    "total": 49,
    "pages": 5,
    "limit": 10,
    "page": 1,
    "list": [
      {
        "id": 1024000,
        "name": "WMF制造商",
        "desc": "严选找寻德国百年高端厨具WMF的制造商,\n选择拥有14年经验的不锈钢生产工厂,\n为你甄选事半功倍的优质厨具。",
        "picUrl": "http://yanxuan.nosdn.127.net/2018e9ac91ec37d9aaf437a1fd5d7070.png",
        "floorPrice": 9.90
      },
      {
        "id": 1024001,
        "name": "OBH制造商",
        "desc": "严选寻找OBH品牌的制造商,打造精致厨具,\n韩国独资工厂制造,严格质检,品质雕琢\n力求为消费者带来全新的烹饪体验。",
        "picUrl": "http://yanxuan.nosdn.127.net/bf3499ac17a11ffb9bb7caa47ebef2dd.png",
        "floorPrice": 39.00
      },
      {
        "id": 1024003,
        "name": "Stoneline制造商",
        "desc": "严选找寻德国经典品牌Stoneline的制造商,\n追踪工艺,考量细节,亲自试用,\n为你甄选出最合心意的锅具和陶瓷刀,下厨如神。",
        "picUrl": "http://yanxuan.nosdn.127.net/3a44ae7db86f3f9b6e542720c54cc349.png",
        "floorPrice": 9.90
      },
      {
        "id": 1024006,
        "name": "KitchenAid制造商",
        "desc": "严选寻访KitchenAid品牌的制造商,\n采用德国LFGB认证食品级专用不锈钢,\n欧式简约设计,可靠安心,尽享下厨乐趣。",
        "picUrl": "http://yanxuan.nosdn.127.net/e11385bf29d1b3949435b80fcd000948.png",
        "floorPrice": 98.00
      },
      {
        "id": 1034001,
        "name": "Alexander McQueen制造商",
        "desc": "为制造精致实用的高品质包包,\n严选团队选择Alexander McQueen制造商,\n严格筛选,带来轻奢优雅体验。",
        "picUrl": "http://yanxuan.nosdn.127.net/db7ee9667d84cbce573688297586699c.jpg",
        "floorPrice": 69.00
      },
      {
        "id": 1023000,
        "name": "PetitBateau小帆船制造商",
        "desc": "为打造适合宝宝的婴童服装,\n严选团队寻找PetitBateau小帆船的品牌制造商,\n无荧光剂,国家A类标准,让宝宝穿的放心。",
        "picUrl": "http://yanxuan.nosdn.127.net/1a11438598f1bb52b1741e123b523cb5.jpg",
        "floorPrice": 36.00
      },
      {
        "id": 1001000,
        "name": "MUJI制造商",
        "desc": "严选精选了MUJI制造商和生产原料,\n用几乎零利润的价格,剔除品牌溢价,\n让用户享受原品牌的品质生活。",
        "picUrl": "http://yanxuan.nosdn.127.net/1541445967645114dd75f6b0edc4762d.png",
        "floorPrice": 12.90
      },
      {
        "id": 1001002,
        "name": "内野制造商",
        "desc": "严选从世界各地挑选毛巾,最终选择了为日本内野代工的工厂,追求毛巾的柔软度与功能性。品质比肩商场几百元的毛巾。",
        "picUrl": "http://yanxuan.nosdn.127.net/8ca3ce091504f8aa1fba3fdbb7a6e351.png",
        "floorPrice": 29.00
      },
      {
        "id": 1001003,
        "name": "Adidas制造商",
        "desc": "严选找到为Adidas等品牌制造商,\n选取优质原材料,与厂方一起设计,\n为你提供好的理想的运动装备。",
        "picUrl": "http://yanxuan.nosdn.127.net/335334d0deaff6dc3376334822ab3a2f.png",
        "floorPrice": 49.00
      },
      {
        "id": 1033003,
        "name": "Armani制造商",
        "desc": "严选团队携手国际标准化专业生产厂家,\n厂家长期为Armani、Alexander wang等知名品牌代工,\n专业进口设备,精密质量把控,精于品质居家体验。",
        "picUrl": "http://yanxuan.nosdn.127.net/981e06f0f46f5f1f041d7de3dd3202e6.jpg",
        "floorPrice": 199.00
      }
    ]
  },
  "errmsg": "成功"
}

错误码

2.9.2 品牌商信息

应用场景

访问单个品牌商信息

接口链接

GET /wx/brand/detail

请求参数

id: 品牌商ID,例如1001020

响应内容

{
  "errno": 0,
  "data": {
    "id": 1001020,
    "name": "Ralph Lauren制造商",
    "desc": "我们与Ralph Lauren Home的制造商成功接洽,掌握先进的生产设备,传承品牌工艺和工序。追求生活品质的你,值得拥有。",
    "picUrl": "http://yanxuan.nosdn.127.net/9df78eb751eae2546bd3ee7e61c9b854.png",
    "sortOrder": 20,
    "floorPrice": 29.00,
    "addTime": "2018-02-01 00:00:00",
    "updateTime": "2018-02-01 00:00:00",
    "deleted": false
  },
  "errmsg": "成功"
}    

错误码

2.10 收藏服务

2.11 评论服务

2.12 优惠券服务

2.13 反馈服务

2.14 足迹服务

2.15 团购服务

2.16 帮助服务

2.17 搜索服务

2.18 专题服务

2.19 对象存储服务

3 管理后台API服务