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

1 前后端接口规范

1.1 请求格式

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

1.1.1 GET请求

1
GET API_URL?params
Copied!
例如
1
GET /home/index
Copied!
或者
1
GET /goods/list?page=1&limit=10
Copied!

1.1.2 POST更新

1
POST API_URL
2
{
3
body
4
}
Copied!
例如
1
POST /cart/clear
Copied!
或者
1
POST /goods/star
2
{
3
id: 1
4
}
Copied!

1.1.3 分页请求参数

当GET请求后端获取数组数据时,需要传递分页参数。
例如
1
GET /goods/list?page=1&limit=10&sort=add_time&order=desc
Copied!
本项目的通用分页请求参数统一传递四个:
1
page: 请求页码
2
limit: 每一页数量
3
sort: 排序字段
4
order: 升序降序
Copied!
  • page, 和通常计算机概念中数组下标从0开始不同,这里的page参数应该从1开始,1即代表第一页数据;
  • limit, 分页大小;
  • sort, 例如"add_time"或者"id";
  • order, 只能是"desc"或者"asc"。
此外,这里四个参数是可选的,后端应该设置默认参数,因此即使前端不设置, 后端也会自动返回合适的对象数组响应数据。
注意:
这里的参数是需要后端支持的,在一些场景下,例如数组对象是组装而成, 有可能sort和order不支持。
讨论:
有些请求后端是所有数据,这里page和limit可能设置是无意义的。但是 仍然建议加上两个参数,例如page=1, limit=1000。
也就是说,请求后端数组数据时,同一传递四个分页参数,可能是比较良好的做法。

1.2 响应格式

1
Content-Type: application/json;charset=UTF-8
2
3
{
4
body
5
}
Copied!
而body是存在一定格式的json内容:
1
{
2
errno: xxx,
3
errmsg: xxx,
4
data: {}
5
}
Copied!

1.2.1 失败异常

1
{
2
errno: xxx,
3
errmsg: xxx
4
}
Copied!
  • errno是错误码,具体语义见1.3节。
  • errmsg是错误信息。

1.2.2 操作成功

1
{
2
errno: 0,
3
errmsg: "成功",
4
}
Copied!

1.2.3 普通对象

1
{
2
errno: 0,
3
errmsg: "成功",
4
data: {}
5
}
Copied!

1.2.4 数组对象

1
{
2
errno: 0,
3
errmsg: "成功",
4
data: {
5
list: [],
6
total: XX,
7
page: XX,
8
limit: XX,
9
pages: XX
10
}
11
}
Copied!
list是对象数组,total是总的数量。

1.3 错误码

1.3.1 系统通用错误码

系统通用错误码包括4XX和5XX
  • 4xx,前端错误,说明前端开发者需要重新了解后端接口使用规范:
    • 401,参数错误,即前端没有传递后端需要的参数;
    • 402,参数值错误,即前端传递的参数值不符合后端接收范围。
  • 5xx,后端系统错误,除501外,说明后端开发者应该继续优化代码,尽量避免返回后端系统错误码:
    • 501,验证失败,即后端要求用户登录;
    • 502,系统内部错误,即没有合适命名的后端内部错误;
    • 503,业务不支持,即后端虽然定义了接口,但是还没有实现功能;
    • 504,更新数据失效,即后端采用了乐观锁更新,而并发更新时存在数据更新失效;
    • 505,更新数据失败,即后端数据库更新失败(正常情况应该更新成功)。

1.3.2 商场业务错误码

  • AUTH_INVALID_ACCOUNT = 700
  • AUTH_CAPTCHA_UNSUPPORT = 701
  • AUTH_CAPTCHA_FREQUENCY = 702
  • AUTH_CAPTCHA_UNMATCH = 703
  • AUTH_NAME_REGISTERED = 704
  • AUTH_MOBILE_REGISTERED = 705
  • AUTH_MOBILE_UNREGISTERED = 706
  • AUTH_INVALID_MOBILE = 707
  • AUTH_OPENID_UNACCESS = 708
  • AUTH_OPENID_BINDED = 709
  • GOODS_UNSHELVE = 710
  • GOODS_NO_STOCK = 711
  • GOODS_UNKNOWN = 712
  • GOODS_INVALID = 713
  • ORDER_UNKNOWN = 720
  • ORDER_INVALID = 721
  • ORDER_CHECKOUT_FAIL = 722
  • ORDER_CANCEL_FAIL = 723
  • ORDER_PAY_FAIL = 724
  • ORDER_INVALID_OPERATION = 725
  • ORDER_COMMENTED = 726
  • ORDER_COMMENT_EXPIRED = 727
  • GROUPON_EXPIRED = 730
  • COUPON_EXCEED_LIMIT = 740
  • COUPON_RECEIVE_FAIL= 741
  • COUPON_CODE_INVALID= 742

1.3.3 管理后台业务错误码

  • ADMIN_INVALID_NAME = 601
  • ADMIN_INVALID_PASSWORD = 602
  • ADMIN_NAME_EXIST = 602
  • ADMIN_ALTER_NOT_ALLOWED = 603
  • ADMIN_DELETE_NOT_ALLOWED = 604
  • ADMIN_INVALID_ACCOUNT = 605
  • GOODS_UPDATE_NOT_ALLOWED = 610
  • GOODS_NAME_EXIST = 611
  • ORDER_CONFIRM_NOT_ALLOWED = 620
  • ORDER_REFUND_FAILED = 621
  • ORDER_REPLY_EXIST = 622
  • USER_INVALID_NAME = 630
  • USER_INVALID_PASSWORD = 631
  • USER_INVALID_MOBILE = 632
  • USER_NAME_EXIST = 633
  • USER_MOBILE_EXIST = 634
  • ROLE_NAME_EXIST = 640
  • ROLE_SUPER_SUPERMISSION = 641
  • ROLE_USER_EXIST = 642

1.4 Token

前后端采用token来验证访问权限。

1.4.1 Header&Token

前后端Token交换流程如下:
  1. 1.
    前端访问商场登录API或者管理后台登录API;
  2. 2.
    成功以后,前端会接收后端响应的一个token,保存在本地;
  3. 3.
    请求受保护API则,则采用自定义头部携带此token
  4. 4.
    后端检验Token,成功则返回受保护的数据。

1.4.2 商场自定义Header

访问受保护商场API采用自定义X-Litemall-Token头部
  1. 1.
    小商城(或轻商场)前端访问小商城后端登录API/wx/auth/login
    1
    POST /wx/auth/login
    2
    3
    {
    4
    "username": "user123",
    5
    "password": "user123"
    6
    }
    Copied!
  2. 2.
    成功以后,前端会接收后端响应的一个token,
    1
    {
    2
    "errno": 0,
    3
    "data": {
    4
    "userInfo": {
    5
    "nickName": "user123",
    6
    "avatarUrl": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
    7
    },
    8
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0aGlzIGlzIGxpdGVtYWxsIHRva2VuIiwiYXVkIjoiTUlOSUFQUCIsImlzcyI6IkxJVEVNQUxMIiwiZXhwIjoxNTU3MzI2ODUwLCJ1c2VySWQiOjEsImlhdCI6MTU1NzMxOTY1MH0.XP0TuhupV_ttQsCr1KTaPZVlTbVzVOcnq_K0kXdbri0"
    9
    },
    10
    "errmsg": "成功"
    11
    }
    Copied!
  3. 3.
    请求受保护API则,则采用自定义头部携带此token
    1
    GET http://localhost:8080/wx/address/list
    2
    X-Litemall-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0aGlzIGlzIGxpdGVtYWxsIHRva2VuIiwiYXVkIjoiTUlOSUFQUCIsImlzcyI6IkxJVEVNQUxMIiwiZXhwIjoxNTU3MzM2ODU0LCJ1c2VySWQiOjIsImlhdCI6MTU1NzMyOTY1NH0.JY1-cqOnmi-CVjFohZMqK2iAdAH4O6CKj0Cqd5tMF3M
    Copied!

1.4.3 管理后台自定义Header

访问受保护管理后台API则是自定义X-Litemall-Admin-Token头部。
  1. 1.
    管理后台前端访问管理后台后端登录API/admin/auth/login
    1
    POST /admin/auth/login
    2
    3
    {
    4
    "username": "admin123",
    5
    "password": "admin123"
    6
    }
    Copied!
  2. 2.
    成功以后,管理后台前端会接收后端响应的一个token,
    1
    {
    2
    "errno": 0,
    3
    "data": {
    4
    "adminInfo": {
    5
    "nickName": "admin123",
    6
    "avatar": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
    7
    },
    8
    "token": "f2dbcae8-6e25-4f8e-bc58-aa81d512c952"
    9
    },
    10
    "errmsg": "成功"
    11
    }
    Copied!
  3. 3.
    请求受保护API时,则采用自定义头部携带此token
    1
    GET http://localhost:8080/wx/address/list
    2
    X-Litemall-Admin-Token: f2dbcae8-6e25-4f8e-bc58-aa81d512c952
    Copied!

1.5 版本控制

API应该存在版本控制,以保证兼容性。
由于仍处于开发中,因此目前未引入版本控制。

1.6 API格式

这里定义一个API的格式:
应用场景
1
xxx
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

1.7 API预览

接下来会分别从用户层面和管理员层面构建商场API服务和管理后台API服务。
商场API服务涉及
  • 安全服务
  • 首页服务
  • 类目服务
  • 商品服务
  • 购物车服务
  • 订单服务
  • 会员服务
  • 收货地址服务
  • 品牌商服务
  • 收藏服务
  • 评论服务
  • 优惠券服务
  • 反馈服务
  • 足迹服务
  • 团购服务
  • 帮助服务
  • 搜索服务
  • 专题服务
  • 对象存储服务
管理后台API服务涉及:

1.8 API测试

本节以GET、POST两种方式以及是否需要登录举例说明如何测试和使用本项目API。
开发者可以使用各种API测试命令或者工具,这里以Postman作为工具。

1.8.1 GET 示例

如果一个API是GET方法,那么请求参数需要在访问链接后面:
例如测试2.4.2节商品详情API

1.8.2 GET & Token 示例

如果需要登录才能访问数据,则需要先向后端请求登录,得到token,然后请求时携带token。
例如测试2.8.1节收货地址列表API
如果没有登录,则返回未登录信息
因此测试这些API,需要先登录
然后,采用自定义X-Litemall-Token来携带token访问商场API
注意:
访问受保护商场API是采用自定义X-Litemall-Token头部; 而访问受保护管理后台API则是自定义X-Litemall-Admin-Token头部。

1.8.3 POST 示例

通常POST请求后端时,都需要先登录才能有权限上传数据,因此这里不举例说明。

1.8.4 POST & Token 示例

如果需要登录才能提交数据,则需要先向后端请求登录,得到token,然后请求时携带token。
因此测试这些API,需要先登录
然后,采用自定义X-Litemall-Token来携带token访问商场API
注意:
访问受保护商场API是采用自定义X-Litemall-Token头部; 而访问受保护管理后台API则是自定义X-Litemall-Admin-Token头部。

1.9 API保护

为了保护API不被滥用,通常API需要引入保护机制,例如OAuth2。
本项目暂时无保护机制,因此实际上一旦开发者知道服务器,就很容易访问API。

1.10 API局限性

当前API还存在一些问题,后面需要继续优化和完善。
  • 无意义的通用字段
  • 团购API完善

1.11 Not Like Swagger

本项目不是很接受Swagger,基于以下考虑:
  • 前后端中立
在前后端分离项目中,依赖后端的Swagger来生成项目API似乎不是很理想, 这实际上把项目API设计工作过多地压在后端,同时前端也被迫依赖后端, 因为后端如果没有写好文档注解,前端不可能了解API的输入输出。
可能一种合理的做法应该这样: 项目初期前后端一起完成一个完整基本的API文档,定义好交互规范和具体API的行为,然后双方同时开始开发工作; 某个开发阶段,前端需要更多的数据或者新的API支持,此时也不需要立即联系后端(除非API产生破坏性变更), 而是暂时基于mock和自定义mock数据独立开发;之后,在合适阶段(可以按照项目规定,例如三天或者周五), 前后端再次沟通API的变更,后端了解需求后则可以接受、拒绝或者调整,当然变更必须要在API文档中体现和更新; 下一个开发阶段,前端和后端能够再次基于最新的API文档来调整自己代码。 最后项目测试时,只要前端对照API文档,后端也是对照API文档。
  • 后端代码简洁
如果使用Swagger,为了得到完整的文档,需要在每一个方法前面加上多个文档注解,文档越是详尽,则注解越多, 造成代码不是很简洁。特别是具备代码属性的注解和Swagger文档注解混杂在一起,可能不是很好。
当然,本项目也简单地配置了Swagger(见WxSwagger2ConfigurationAdminSwagger2Configuration),
此外,也使用了swagger-bootstrap-ui对Swagger进一步增强了使用效果。
当然正如上文讨论,本项目不是很接受Swagger的理念,所以后端没有使用Swagger的相关文档注解, 这也导致了Swagger接口文档的不具可读性。如果开发者需要,可以自行在后端补充Swagger注解。
需要注意的是:
这里接口默认是公开的,因此项目一旦需要上线,请及时删除swagger和swagger-bootstrap-ui依赖和配置, 或者采取其他手段,防止接口对外暴露造成安全隐患
例如
1
swagger:
2
production: false
Copied!

2 商城API服务

2.1 安全服务

2.1.1 小程序微信登录

应用场景
1
小程序环境下微信登录。
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.2 账号登录

应用场景
1
基于用户名和密码的账号登录
Copied!
接口链接
1
POST /wx/auth/login
Copied!
请求参数
1
{
2
"username": "user123",
3
"password": "user123"
4
}
Copied!
响应内容
1
{
2
"errno": 0,
3
"data": {
4
"userInfo": {
5
"nickName": "user123",
6
"avatarUrl": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
7
},
8
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0aGlzIGlzIGxpdGVtYWxsIHRva2VuIiwiYXVkIjoiTUlOSUFQUCIsImlzcyI6IkxJVEVNQUxMIiwiZXhwIjoxNTU3MzI2ODUwLCJ1c2VySWQiOjEsImlhdCI6MTU1NzMxOTY1MH0.XP0TuhupV_ttQsCr1KTaPZVlTbVzVOcnq_K0kXdbri0"
9
},
10
"errmsg": "成功"
11
}
Copied!
错误码
1
Copied!

2.1.3 注册

应用场景
1
xxx
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.4 退出

应用场景
1
账号退出
Copied!
接口链接
1
POST /wx/auth/logout
Copied!
请求参数
1
{
2
"username": "user123",
3
"password": "user123"
4
}
Copied!
响应内容
1
{
2
"errno": 0,
3
"errmsg": "成功"
4
}
Copied!
错误码
1
Copied!

2.1.5 注册验证码

应用场景
1
用户未登录情况下,请求后端发送注册验证码用于注册。
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.6 操作验证码

应用场景
1
用户已登录情况下,请求后端发送操作验证码用于相关操作。
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.7 账号密码修改

应用场景
1
账号密码修改
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.8 微信手机号码绑定

应用场景
1
微信手机号码绑定,仅用于小程序环境。
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.9 手机号码修改

应用场景
1
手机号码修改
Copied!
接口链接
1
xxx
Copied!
请求参数
1
xxx
Copied!
响应内容
1
xxx
Copied!
错误码
1
xxx
Copied!

2.1.10 账号信息

应用场景
1
账号信息
Copied!
接口链接
1
GET /wx/auth/info
Copied!
请求参数
1
Copied!
响应内容
1
{
2
"errno": 0,
3
"data": {
4
"gender": 1,
5
"nickName": "user123",
6
"mobile": "",
7
"avatar": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
8
},
9
"errmsg": "成功"
10
}
Copied!
错误码
1
Copied!

2.1.11 账号信息更新

应用场景
1
账号信息更新。
Copied!
接口链接
1
POST /wx/auth/profile
Copied!
请求参数
1
{
2
"gender": 1,
3
"nickName": "user123",
4
"avatar": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
5
}
Copied!
响应内容
1
{
2
"errno": 0,
3
"errmsg": "成功"
4
}
Copied!
错误码
1
Copied!

2.2 首页服务

2.2.1 首页数据

应用场景
1
首页数据
Copied!
接口链接
1
GET /wx/home/index
Copied!
请求参数
1
Copied!
响应内容
1
{
2
"errno": 0,
3
"data": {
4
"newGoodsList": [
5
{
6
"id": 1181000,
7
"name": "母亲节礼物-舒适安睡组合",
8
"brief": "安心舒适是最好的礼物",
9
"picUrl": "http://yanxuan.nosdn.127.net/1f67b1970ee20fd572b7202da0ff705d.png",
10
"isNew": true,
11
"isHot": false,
12
"counterPrice": 2618.00,
13
"retailPrice": 2598.00
14
},
15
{
16
"id": 1116011,
17
"name": "蔓越莓曲奇 200克",
18
"brief": "酥脆奶香,甜酸回味",
19
"picUrl": "http://yanxuan.nosdn.127.net/767b370d07f3973500db54900bcbd2a7.png",
20
"isNew": true,
21
"isHot": true,
22
"counterPrice": 56.00,
23
"retailPrice": 36.00
24
},
25
{
26
"id": 1127047,
27
"name": "趣味粉彩系列笔记本",
28
"brief": "粉彩色泽,记录生活",
29
"picUrl": "http://yanxuan.nosdn.127.net/6c03ca93d8fe404faa266ea86f3f1e43.png",
30
"isNew": true,
31
"isHot": false,
32
"counterPrice": 49.00,
33
"retailPrice": 29.00
34
},
35
{
36
"id": 1135002,
37
"name": "宫廷奢华真丝四件套",
38
"brief": "100%桑蚕丝,丝滑润肤",
39
"picUrl": "http://yanxuan.nosdn.127.net/45548f26cfd0c7c41e0afc3709d48286.png",
40
"isNew": true,
41
"isHot": false,
42
"counterPrice": 2619.00,
43
"retailPrice": 2599.00
44
},
45
{
46
"id": 1152161,
47
"name": "竹语丝麻印花四件套",
48
"brief": "3重透气,清爽柔滑",
49
"picUrl": "http://yanxuan.nosdn.127.net/977401e75113f7c8334c4fb5b4bf6215.png",
50
"isNew": true,
51
"isHot": false,
52
"counterPrice": 479.00,
53
"retailPrice": 459.00
54
},
55
{
56
"id": 1166008,
57
"name": "Carat钻石 不粘厨具组合",
58
"brief": "钻石涂层,不粘锅锅具组",
59
"picUrl": "http://yanxuan.nosdn.127.net/615a16e899e01efb780c488df4233f48.png",
60
"isNew": true,
61
"isHot": false,
62
"counterPrice": 479.00,
63
"retailPrice": 459.00
64
}
65
],
66
"couponList": [
67
{
68
"id": 2,
69
"name": "限时满减券",
70
"desc": "全场通用",
71
"tag": "无限制",
72
"discount": 10.00,
73
"min": 99.00,
74
"days": 10
75
}
76
],
77
"channel": [
78
{
79
"id": 1005000,
80
"name": "居家",
81
"iconUrl": "http://yanxuan.nosdn.127.net/a45c2c262a476fea0b9fc684fed91ef5.png"
82
},
83
{
84
"id": 1005001,
85
"name": "餐厨",
86
"iconUrl": "http://yanxuan.nosdn.127.net/ad8b00d084cb7d0958998edb5fee9c0a.png"
87
},
88
{
89
"id": 1005002,
90
"name": "饮食",
91
"iconUrl": "http://yanxuan.nosdn.127.net/c9280327a3fd2374c000f6bf52dff6eb.png"
92
},
93
{
94
"id": 1008000,
95
"name": "配件",
96
"iconUrl": "http://yanxuan.nosdn.127.net/11abb11c4cfdee59abfb6d16caca4c6a.png"
97
},
98
{
99
"id": 1010000,
100
"name": "服装",
101
"iconUrl": "http://yanxuan.nosdn.127.net/28a685c96f91584e7e4876f1397767db.png"
102
},
103
{
104
"id": 1011000,
105
"name": "婴童",
106
"iconUrl": "http://yanxuan.nosdn.127.net/1ba9967b8de1ac50fad21774a4494f5d.png"
107
},
108
{
109
"id": 1012000,
110
"name": "杂货",
111
"iconUrl": "http://yanxuan.nosdn.127.net/c2a3d6349e72c35931fe3b5bcd0966be.png"
112
},
113
{
114
"id": 1013001,
115
"name": "洗护",
116
"iconUrl": "http://yanxuan.nosdn.127.net/9fe068776b6b1fca13053d68e9c0a83f.png"
117
},
118
{
119
"id": 1019000,
120
"name": "志趣",
121
"iconUrl": "http://yanxuan.nosdn.127.net/7093cfecb9dde1dd3eaf459623df4071.png"
122
}
123
],
124
"grouponList": [
125
{
126
"id": 1109008,
127
"name": "云端沙发组合",
128
"brief": "MUJI供应商携手打造",
129
"picUrl": "http://yanxuan.nosdn.127.net/c5be2604c0e4186a4e7079feeb742cee.png",
130
"counterPrice": 4019.00,
131
"retailPrice": 3999.00,
132
"grouponPrice": 3949.00,
133
"grouponDiscount": 50,
134
"grouponMember": 5
135
},
136
{
137
"id": 1039051,
138
"name": "多功能午睡枕",
139
"brief": "放松自在的午后时光",
140
"picUrl": "http://yanxuan.nosdn.127.net/c8ca0600fa7ba11ca8be6a3173dd38c9.png",
141
"counterPrice": 99.00,
142
"retailPrice": 79.00,
143
"grouponPrice": 59.00,
144
"grouponDiscount": 20,
145
"grouponMember": 20
146
}
147
],
148
"banner": [
149
{
150
"id": 1,
151
"name": "合作 谁是你的菜",
152
"link": "",
153
"url": "http://yanxuan.nosdn.127.net/65091eebc48899298171c2eb6696fe27.jpg",
154
"position": 1,
155
"content": "合作 谁是你的菜",
156
"enabled": true,
157
"addTime": "2018-02-01 00:00:00",
158
"updateTime": "2018-02-01 00:00:00",
159
"deleted": false
160
},
161
{
162
"id": 2,
163
"name": "活动 美食节",
164
"link": "",
165
"url": "http://yanxuan.nosdn.127.net/bff2e49136fcef1fd829f5036e07f116.jpg",
166
"position": 1,
167
"content": "活动 美食节",
168
"enabled": true,
169
"addTime": "2018-02-01 00:00:00",
170
"updateTime": "2018-02-01 00:00:00",
171
"deleted": false
172
},
173
{
174
"id": 3,
175
"name": "活动 母亲节",
176
"link": "",
177
"url": "http://yanxuan.nosdn.127.net/8e50c65fda145e6dd1bf4fb7ee0fcecc.jpg",
178
"position": 1,
179
"content": "活动 母亲节5",
180
"enabled": true,
181
"addTime": "2018-02-01 00:00:00",
182
"updateTime": "2018-02-01 00:00:00",
183
"deleted": false
184
}
185
],
186
"brandList": [
187
{
188
"id": 1001000,
189
"name": "MUJI制造商",
190
"desc": "严选精选了MUJI制造商和生产原料,\n用几乎零利润的价格,剔除品牌溢价,\n让用户享受原品牌的品质生活。",
191
"picUrl": "http://yanxuan.nosdn.127.net/1541445967645114dd75f6b0edc4762d.png",
192
"floorPrice": 12.90
193
},
194
{
195
"id": 1001002,
196
"name": "内野制造商",
197
"desc": "严选从世界各地挑选毛巾,最终选择了为日本内野代工的工厂,追求毛巾的柔软度与功能性。品质比肩商场几百元的毛巾。",
198
"picUrl": "http://yanxuan.nosdn.127.net/8ca3ce091504f8aa1fba3fdbb7a6e351.png",
199
"floorPrice": 29.00
200
},
201
{
202
"id": 1001003,
203
"name": "Adidas制造商",
204
"desc": "严选找到为Adidas等品牌制造商,\n选取优质原材料,与厂方一起设计,\n为你提供好的理想的运动装备。",
205
"picUrl": "http://yanxuan.nosdn.127.net/335334d0deaff6dc3376334822ab3a2f.png",
206
"floorPrice": 49.00
207
},
208
{
209
"id": 1001007,
210
"name": "优衣库制造商",
211
"desc": "严选找到日本知名服装UNIQLO的制造商,\n选取优质长绒棉和精梳工艺,\n与厂方一起设计,为你提供理想的棉袜。",
212
"picUrl": "http://yanxuan.nosdn.127.net/0d72832e37e7e3ea391b519abbbc95a3.png",
213
"floorPrice": 29.00
214
}
215
],
216
"hotGoodsList": [
217
{
218
"id": 1152008,
219
"name": "魔兽世界 部落 护腕 一只",
220
"brief": "吸汗、舒适、弹性、防护、耐用",
221
"picUrl": "http://yanxuan.nosdn.127.net/203cb83d93606865e3ddde57b69b9e9a.png",
222
"isNew": false,
223
"isHot": true,
224
"counterPrice": 49.00,
225
"retailPrice": 29.00
226
},
227
{
228
"id": 1152009,
229
"name": "魔兽世界 联盟 护腕 一只",
230
"brief": "吸汗、舒适、弹性、防护、耐用",
231
"picUrl": "http://yanxuan.nosdn.127.net/ae6d41117717387b82dcaf1dfce0cd97.png",
232
"isNew": false,
233
"isHot": true,
234
"counterPrice": 49.00,
235
"retailPrice": 29.00
236
},
237
{
238
"id": 1152031,
239
"name": "魔兽世界-伊利丹颈枕眼罩套装",
240
"brief": "差旅好伴侣",
241
"picUrl": "http://yanxuan.nosdn.127.net/fd6e78a397bd9e9804116a36f0270b0a.png",
242
"isNew": false,
243
"isHot": true,
244
"counterPrice": 119.00,
245
"retailPrice": 99.00
246
},
247
{
248
"id": 1022000,
249
"name": "意式毛线绣球四件套",
250
"brief": "浪漫毛线绣球,简约而不简单",
251
"picUrl": "http://yanxuan.nosdn.127.net/5350e35e6f22165f38928f3c2c52ac57.png",
252
"isNew": false,
253
"isHot": true,
254
"counterPrice": 319.00,
255
"retailPrice": 299.00
256
},
257
{
258
"id": 1011004,
259
"name": "色织精梳AB纱格纹空调被",
260
"brief": "加大加厚,双色精彩",
261
"picUrl": "http://yanxuan.nosdn.127.net/0984c9388a2c3fd2335779da904be393.png",
262
"isNew": false,
263
"isHot": true,
264
"counterPrice": 219.00,
265
"retailPrice": 199.00
266
},
267
{
268
"id": 1084003,
269
"name": "纯棉美式绞花针织盖毯",
270
"brief": "美式提花,温暖舒适",
271
"picUrl": "http://yanxuan.nosdn.127.net/cf40c167e7054fe184d49f19121f63c7.png",
272
"isNew": false,
273
"isHot": true,
274
"counterPrice": 219.00,
275
"retailPrice": 199.00
276
}
277
],
278
"topicList": [
279
{
280
"id": 264,
281
"title": "设计师们推荐的应季好物",
282
"subtitle": "原创设计春款系列上新",
283
"price": 29.90,
284
"readCount": "77.7k",
285
"picUrl": "https://yanxuan.nosdn.127.net/14918201901050274.jpg"
286
},
287
{
288
"id": 266,
289
"title": "一条丝巾就能提升时髦度",
290
"subtitle": "不知道大家对去年G20时,严选与国礼制造商一起推出的《凤凰于飞》等几款丝巾是否还...",
291
"price": 0.00,
292
"readCount": "35.0k",
293
"picUrl": "https://yanxuan.nosdn.127.net/14919007135160213.jpg"
294
},
295
{
296
"id": 268,
297
"title": "米饭好吃的秘诀:会呼吸的锅",
298
"subtitle": "今年1月份,我们联系到了日本伊贺地区的长谷园,那里有着180年伊贺烧历史的窑厂。...",
299
"price": 0.00,
300
"readCount": "33.3k",
301
"picUrl": "https://yanxuan.nosdn.127.net/14920623353130483.jpg"
302
},
303
{
304
"id": 271,
305
"title": "选式新懒人",
306
"subtitle": "懒出格调,懒出好生活。",
307
"price": 15.00,
308
"readCount": "57.7k",
309
"picUrl": "https://yanxuan.nosdn.127.net/14924199099661697.jpg"
310
}
311
],
312
"floorGoodsList": [
313
{
314
"name": "居家",
315
"goodsList": [
316
{
317
"id": 1110016,
318
"name": "天然硅胶宠物除毛按摩刷",
319
"brief": "顺滑平面,猫狗通用,去除死毛",
320
"picUrl": "http://yanxuan.nosdn.127.net/3bd73b7279a83d1cbb50c0e45778e6d6.png",
321
"isNew": false,
322
"isHot": false,
323
"counterPrice": 59.00,
324
"retailPrice": 39.00
325
},
326
{
327
"id": 1110017,
328
"name": "耐用材料猫咪护理清洁套装",
329
"brief": "精致钢材,美容清洁",
330
"picUrl": "http://yanxuan.nosdn.127.net/534231583f82572398ec84bad425cdaf.png",
331
"isNew": false,
332
"isHot": false,
333
"counterPrice": 99.00,
334
"retailPrice": 79.00
335
},
336
{
337
"id": 1110018,
338
"name": "耐用狗狗清洁美容护理套装",
339
"brief": "精致钢材,耐咬美容",
340
"picUrl": "http://yanxuan.nosdn.127.net/d93aa5d6e7a296101cf4cb72613aeda6.png",
341
"isNew": false,
342
"isHot": false,
343
"counterPrice": 99.00,
344
"retailPrice": 79.00
345
},
346
{
347
"id": 1110019,
348
"name": "宠物合金钢安全除菌指甲护理组合",
349
"brief": "猫狗皆可用,保护家具",
350
"picUrl": "http://yanxuan.nosdn.127.net/1e7e392b6fc9da99dc112197b7444eec.png",
351
"isNew": false,
352
"isHot": false,
353
"counterPrice": 89.00,
354
"retailPrice": 69.00
355
}
356
],
357
"id": 1005000
358
},
359
{
360
"name": "餐厨",
361
"goodsList": [
362
{
363
"id": 1023003,
364
"name": "100年传世珐琅锅 全家系列",
365
"brief": "特质铸铁,大容量全家共享",
366
"picUrl": "http://yanxuan.nosdn.127.net/c39d54c06a71b4b61b6092a0d31f2335.png",
367
"isNew": false,
368
"isHot": false,
369
"counterPrice": 418.00,
370
"retailPrice": 398.00
371
},
372
{
373
"id": 1073008,
374
"name": "铸铁珐琅牛排煎锅",
375
"brief": "沥油隔水,煎出外焦里嫩",
376
"picUrl": "http://yanxuan.nosdn.127.net/619e46411ccd62e5c0f16692ee1a85a0.png",
377
"isNew": false,
378
"isHot": false,
379
"counterPrice": 169.00,
380
"retailPrice": 149.00
381
},
382
{
383
"id": 1051000,
384
"name": "Carat钻石炒锅30cm",
385
"brief": "安全涂层,轻便无烟",
386
"picUrl": "http://yanxuan.nosdn.127.net/e564410546a11ddceb5a82bfce8da43d.png",
387
"isNew": false,
388
"isHot": false,
389
"counterPrice": 200.00,
390
"retailPrice": 180.00
391
},
392
{
393
"id": 1051001,
394
"name": "Carat钻石煎锅28cm",
395
"brief": "耐磨涂层,导热迅速",
396
"picUrl": "http://yanxuan.nosdn.127.net/f53ed57d9e23fda7e24dfd0e0a50c5d1.png",
397
"isNew": false,
398
"isHot": false,
399
"counterPrice": 179.00,
400
"retailPrice": 159.00
401
}
402
],
403
"id": 1005001
404
},
405
{
406
"name": "饮食",
407
"goodsList": [
408
{
409
"id": 1045000,
410
"name": "绿茶蛋黄酥 200克/4枚入",
411
"brief": "香甜茶食,果腹优选",
412
"picUrl": "http://yanxuan.nosdn.127.net/b2adc3fd9b84a289a1be03e8ee400e61.png",
413
"isNew": false,
414
"isHot": false,
415
"counterPrice": 48.00,
416
"retailPrice": 28.00
417
},
418
{
419
"id": 1116011,
420
"name": "蔓越莓曲奇 200克",
421
"brief": "酥脆奶香,甜酸回味",
422
"picUrl": "http://yanxuan.nosdn.127.net/767b370d07f3973500db54900bcbd2a7.png",
423
"isNew": true,
424
"isHot": true,
425
"counterPrice": 56.00,
426
"retailPrice": 36.00
427
},
428
{
429
"id": 1070000,
430
"name": "星云酥 180克/3颗",
431
"brief": "酥饼界的小仙女",
432
"picUrl": "http://yanxuan.nosdn.127.net/8392725765cdd57fdae3f173877f4bda.png",
433
"isNew": false,
434
"isHot": false,
435
"counterPrice": 46.00,
436
"retailPrice": 26.00
437
},
438
{
439
"id": 1155015,
440
"name": "绿豆糕 80克(4枚入)",
441
"brief": "细腻松软,入口绵柔",
442
"picUrl": "http://yanxuan.nosdn.127.net/66b9f1638c0517d179262f14ed1345f9.png",
443
"isNew": true,
444
"isHot": false,
445
"counterPrice": 32.90,
446
"retailPrice": 12.90
447
}
448
],
449
"id": 1005002
450
},
451
{
452
"name": "配件",
453
"goodsList": [
454
{
455
"id": 1085019,
456
"name": "20寸 纯PC“铝框”(非全铝)登机箱",
457
"brief": "铝质包角,牢固抗摔",
458
"picUrl": "http://yanxuan.nosdn.127.net/65c955a7a98e84d44ca30bb88a591eac.png",
459
"isNew": false,
460
"isHot": false,
461
"counterPrice": 369.00,
462
"retailPrice": 349.00
463
},
464
{
465
"id": 1086052,
466
"name": "20寸 铝镁合金登机箱",
467
"brief": "时尚金属箱,奢品质感",
468
"picUrl": "http://yanxuan.nosdn.127.net/93171a281c4ed272c007a050816e6f6c.png",
469
"isNew": false,
470
"isHot": false,
471
"counterPrice": 879.00,
472
"retailPrice": 859.00
473
},
474
{
475
"id": 1152101,
476
"name": "魔兽世界 部落 奥格瑞玛 拉杆箱 可登机",
477
"brief": "18寸,可携带登机",
478
"picUrl": "http://yanxuan.nosdn.127.net/c1c62211a17b71a634fa0c705d11fb42.png",
479
"isNew": false,
480
"isHot": true,
481
"counterPrice": 908.00,
482
"retailPrice": 888.00
483
},
484
{
485
"id": 1114011,
486
"name": "104升 纯PC拉链斜纹拉杆箱",
487
"brief": "104升的体积,90升的价格",
488
"picUrl": "http://yanxuan.nosdn.127.net/196b5ce11930b4eadaec563cb0406634.png",
489
"isNew": false,
490
"isHot": false,
491
"counterPrice": 319.00,
492
"retailPrice": 299.00
493
}
494
],
495
"id": 1008000
496
}
497
]
498
},
499
"errmsg": "成功"
500
}
Copied!
错误码
1
Copied!

2.3 类目服务

2.4 商品服务

2.4.1 商品列表

应用场景
1
商品列表
Copied!
接口链接
1
GET /wx/goods/list
Copied!
请求参数
1
isNew: 是否新品,true或者false
2
isHot: 是否热卖商品,true或者false
3
keyword: 关键字,如果设置则查询是否匹配关键字
4
brandId: 品牌商ID,如果设置则查询品牌商所属商品
5
categoryId: 商品分类ID,如果设置则查询分类所属商品
6
page: 请求页码
7
limit: 每一页数量
8
sort: 排序字段
9
order: 升序降序
Copied!
响应内容
1
{
2
"errno": 0,
3
"data": {
4
"total": 11,
5
"pages": 6,
6
"limit": 2,
7
"page": 1,
8
"list": [
9
{
10
"id": 1181000,
11
"name": "母亲节礼物-舒适安睡组合",
12
"brief": "安心舒适是最好的礼物",
13
"picUrl": "http://yanxuan.nosdn.127.net/1f67b1970ee20fd572b7202da0ff705d.png",
14
"isNew": true,
15
"isHot": false,
16
"counterPrice": 2618.00,
17
"retailPrice": 2598.00
18
},
19
{</