小马哥服务器系统激活,Vue项目接口.md
## 电商管理后台API接口文档
### 接口说明
- 接口基准地址:`http://localhost:8888/api/private/v1/`
- 服务端已开启 CORS 跨域支持
- API V1 认证统一使用 Token 认证
- 需要授权的 API ,必须在请求头中使用 `Authorization` 字段提供 `token` 令牌
- 使用 HTTP Status Code 标识状态
- 数据返回格式统一使用 JSON
### 支持的请求方法
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
- DELETE(DELETE):从服务器删除资源。
- HEAD:获取资源的元数据。
- OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
### 通用返回状态说明
| *状态码* | *含义* | *说明* |
| -------- | --------------------- | --------------------------------------------------- |
| 200 | OK | 请求成功 |
| 201 | CREATED | 创建成功 |
| 204 | DELETED | 删除成功 |
| 400 | BAD REQUEST | 请求的地址不存在或者包含不支持的参数 |
| 401 | UNAUTHORIZED | 未授权 |
| 403 | FORBIDDEN | 被禁止访问 |
| 404 | NOT FOUND | 请求的资源不存在 |
| 422 | Unprocesable entity | [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误 |
| 500 | INTERNAL SERVER ERROR | 内部错误 |
## 登录
### 登录验证接口
- 请求路径:login
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | -------- |
| username | 用户名 | 不能为空 |
| password | 密码 | 不能为空 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| -------- | ----------- | ---------------------- |
| id | 用户 ID | |
| rid | 用户角色 ID | |
| username | 用户名 | |
| mobile | 手机号 | |
| email | 邮箱 | |
| token | 令牌 | Bearer eyJhbGc ....... |
- 响应数据
```js
{
"data": {
"id": 500,
"rid": 0,
"username": "admin",
"mobile": "123",
"email": "123@qq.com",
"token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6I......"
},
"meta": {
"msg": "登录成功",
"status": 200
}
}
```
## 用户管理
### 用户数据列表
- 请求路径:users
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | ------------ | -------- |
| query | 查询参数 | 可以为空 |
| pagenum | 当前页码 | 不能为空 |
| pagesize | 每页显示条数 | 不能为空 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------- | ------------ | ---- |
| total | 总个数 | |
| pagenum | 当前页码 | |
| users | 用户数据集合 | |
- 响应数据
```
{
"data": {
"total": 5,
"pagenum": 4,
"users": [
{
"id": 25,
"username": "tige117",
"mobile": "18616358651",
"type": 1,
"openid": "",
"email": "tige112@163.com",
"create_time": "2017-11-09T20:36:26.000Z",
"modify_time": null,
"is_delete": false,
"is_active": false
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 添加用户
- 请求路径:users
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | -------- |
| username | 用户名称 | 不能为空 |
| password | 用户密码 | 不能为空 |
| email | 邮箱 | 可以为空 |
| mobile | 手机号 | 可以为空 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ----------- | ----------- | --------- |
| id | 用户 ID | |
| role_id | 用户角色 ID | 默认 : -1 |
| username | 用户名 | |
| mobile | 手机号 | |
| email | 邮箱 | |
| create_time | 创建时间 | |
- 响应数据
```
{
"data": {
"id": 28,
"username": "tige1200",
"mobile": "test",
"role_id": -1,
"openid": "",
"email": "test@test.com",
"create_time": "1553526029",
},
"meta": {
"msg": "用户创建成功",
"status": 201
}
}
```
### 修改用户状态
- 请求路径:users/:uId/state/:type
- 请求方法:put
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | ------------------------------------------- |
| uId | 用户 ID | 不能为空`携带在url中` |
| type | 用户状态 | 不能为空`携带在url中`,值为 true 或者 false |
- 响应数据
```
{
"data": {
"id": 566,
"rid": 30,
"username": "admin",
"mobile": "123456",
"email": "bb@itcast.com",
"mg_state": 0
},
"meta": {
"msg": "设置状态成功",
"status": 200
}
}
```
### 根据 ID 查询用户信息
- 请求路径:users/:id
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------- |
| id | 用户 ID | 不能为空`携带在url中` |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------- | -------- | ---- |
| id | 用户 ID | |
| role_id | 角色 ID | |
| mobile | 手机号 | |
| email | 邮箱 | |
- 响应数据
```
{
"data": {
"id": 503,
"username": "admin3",
"role_id": 0,
"mobile": "00000",
"email": "new@new.com"
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
```
### 编辑用户提交
- 请求路径:users/:id
- 请求方法:put
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------------- |
| id | 用户 id | 不能为空 `参数是url参数:id` |
| email | 邮箱 | 可以为空 |
| mobile | 手机号 | 可以为空 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------- | -------- | ---- |
| id | 用户 ID | |
| role_id | 角色 ID | |
| mobile | 手机号 | |
| email | 邮箱 | |
- 响应数据
```
/* 200表示成功,500表示失败 */
{
"data": {
"id": 503,
"username": "admin3",
"role_id": 0,
"mobile": "111",
"email": "123@123.com"
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
```
### 删除单个用户
- 请求路径:users/:id
- 请求方法:delete
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | -------------------------- |
| id | 用户 id | 不能为空`参数是url参数:id` |
- 响应参数
- 响应数据
```
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
```
### 分配用户角色
- 请求路径:users/:id/role
- 请求方法:put
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | -------------------------- |
| id | 用户 ID | 不能为空`参数是url参数:id` |
| rid | 角色 id | 不能为空`参数body参数` |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------- | -------- | ---- |
| id | 用户 ID | |
| role_id | 角色 ID | |
| mobile | 手机号 | |
| email | 邮箱 | |
- 响应数据
```
{
"data": {
"id": 508,
"rid": "30",
"username": "asdf1",
"mobile": "123123",
"email": "adfsa@qq.com"
},
"meta": {
"msg": "设置角色成功",
"status": 200
}
}
```
## 权限管理
### 所有权限列表
- 请求路径:rights/:type
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | ------------------------------------------------------------ |
| type | 类型 | 值: list 或 tree , list 列表显示权限, tree 树状显示权限,`参数是url参数:type` |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| -------- | ------------ | ---- |
| id | 权限 ID | |
| authName | 权限说明 | |
| level | 权限层级 | |
| pid | 权限父 ID | |
| path | 对应访问路径 | |
- 响应数据 type=list
```
{
"data": [
{
"id": 101,
"authName": "商品管理",
"level": "0",
"pid": 0,
"path": null
},
{
"id": 102,
"authName": "订单管理",
"level": "0",
"pid": 0,
"path": null
}
],
"meta": {
"msg": "获取权限列表成功",
"status": 200
}
}
```
type=tree
```
;[
{
data: [
{
id: 101,
authName: '商品管理',
path: null,
pid: 0,
children: [
{
id: 104,
authName: '商品列表',
path: null,
pid: 101,
children: [
{
id: 105,
authName: '添加商品',
path: null,
pid: '104,101'
}
]
}
]
}
],
meta: {
msg: '获取权限列表成功',
status: 200
}
}
]
```
### 左侧菜单权限
- 请求路径:menus
- 请求方法:get
- 响应数据
```
{
"data":
{
"id": 101,
"authName": "商品管理",
"path": null,
"children": [
{
"id": 104,
"authName": "商品列表",
"path": null,
"children": []
}
]
}
"meta": {
"msg": "获取菜单列表成功",
"status": 200
}
}
```
##角色管理
### 角色列表
- 请求路径:roles
- 请求方法:get
- 响应数据说明
- 第一层为角色信息
- 第二层开始为权限说明,权限一共有 3 层权限
- 响应数据
```
{
"data": [
{
"id": 30,
"roleName": "主管",
"roleDesc": "技术负责人",
"children": [
{
"id": 101,
"authName": "商品管理",
"path": null,
"children": [
{
"id": 104,
"authName": "商品列表",
"path": null,
"children": [
{
"id": 105,
"authName": "添加商品",
"path": null
}
]
}
]
}
]
}
],
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 添加角色
- 请求路径:roles
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | -------- |
| roleName | 角色名称 | 不能为空 |
| roleDesc | 角色描述 | 可以为空 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | ---- |
| roleId | 角色 ID | |
| roleName | 角色名称 | |
| roleDesc | 角色描述 | |
- 响应数据
```
{
"data": {
"roleId": 40,
"roleName": "admin2",
"roleDesc": "admin2Desc"
},
"meta": {
"msg": "创建成功",
"status": 201
}
}
```
### 根据 ID 查询角色
- 请求路径:roles/:id
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------- |
| :id | 角色 ID | 不能为空`携带在url中` |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | ---- |
| roleId | 角色 ID | |
| roleName | 角色名称 | |
| roleDesc | 角色描述 | |
- 响应数据
```
{
"data": {
"roleId": 31,
"roleName": "测试角色",
"roleDesc": "测试负责人"
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 编辑提交角色
- 请求路径:roles/:id
- 请求方法:put
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | --------------------- |
| :id | 角色 ID | 不能为空`携带在url中` |
| roleName | 角色名称 | 不能为空 |
| roleDesc | 角色描述 | 可以为空 |
- 响应数据
```
{
"data": {
"roleId": 31,
"roleName": "测试角色",
"roleDesc": "测试角色描述"
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 删除角色
- 请求路径:roles/:id
- 请求方法:delete
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------- |
| :id | 角色 ID | 不能为空`携带在url中` |
- 响应数据
```
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
```
### 角色授权
- 请求路径:roles/:roleId/rights
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------- | ------------ | ------------------------- |
| :roleId | 角色 ID | 不能为空`携带在url中` |
| rids | 权限 ID 列表 | 以 `,` 分割的权限 ID 列表 |
- 响应数据
```
{
"data": null,
"meta": {
"msg": "更新成功",
"status": 200
}
}
```
## 商品分类管理
### 商品数据列表
- 请求路径:categories
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | -------------------------------------------- |
| type | [1,2,3] | 值:1,2,3 分别表示显示一层二层三层分类列表 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| --------- | ------------ | ---- |
| cat_id | 分类 ID | |
| cat_name | 分类名称 | |
| cat_pid | 分类父 ID | |
| cat_level | 分类当前层级 | |
- 响应数据
```
{
"data": [
{
"cat_id": 1,
"cat_name": "手机相机",
"cat_pid": 0,
"cat_level": 0
},
{
"cat_id": 2,
"cat_name": "电脑办公",
"cat_pid": 0,
"cat_level": 0
}
],
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 添加分类
- 请求路径:categories
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| --------- | --------- | -------- |
| cat_pid | 分类父 ID | 不能为空 |
| cat_name | 分类名称 | 不能为空 |
| cat_level | 分类层级 | 不能为空 |
- 响应数据
```
{
"data": {
"cat_id": 62,
"cat_name": "相框",
"cat_pid": "1",
"cat_level": "1"
},
"meta": {
"msg": "创建成功",
"status": 201
}
}
```
### 根据 id 查询分类
- 请求路径:categories/:id
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------- |
| :id | 分类 ID | 不能为空`携带在url中` |
- 响应数据
```
{
"data": {
"cat_id": 3,
"cat_name": "厨卫电器",
"cat_pid": 0,
"cat_level": 0
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 编辑提交分类
- 请求路径:categories/:id
- 请求方法:put
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | -------- | --------------------- |
| :id | 分类 ID | 不能为空`携带在url中` |
| cat_name | 分类名称 | 不能为空 |
- 响应数据
```
{
"data": {
"cat_id": 22,
"cat_name": "自拍杆",
"cat_pid": 7,
"cat_level": 2
},
"meta": {
"msg": "更新成功",
"status": 200
}
}
```
### 删除分类
- 请求路径:categories/:id
- 请求方法:delete
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------- |
| :id | 分类 ID | 不能为空`携带在url中` |
- 响应数据
```
{
"data": null,
"meta": {
"msg": "删除成功",
"status": 200
}
}
```
## 商品管理
### 商品列表数据
- 请求路径:goods
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| -------- | ------------ | -------- |
| query | 查询参数 | 可以为空 |
| pagenum | 当前页码 | 不能为空 |
| pagesize | 每页显示条数 | 不能为空 |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------------ | ------------ | -------------------------------------- |
| total | 总共商品条数 | |
| pagenum | 当前商品页数 | |
| goods_id | 商品 ID | |
| goods_name | 商品名称 | |
| goods_price | 价格 | |
| goods_number | 数量 | |
| goods_weight | 重量 | 不能为空 |
| goods_state | 商品状态 | 商品状态 0: 未通过 1: 审核中 2: 已审核 |
| add_time | 添加时间 | |
| upd_time | 更新时间 | |
| hot_mumber | 热销品数量 | |
| is_promote | 是否是热销品 | |
- 响应数据
```
{
"data": {
"total": 50,
"pagenum": "1",
"goods": [
{
"goods_id": 144,
"goods_name": "asfdsd",
"goods_price": 1,
"goods_number": 1,
"goods_weight": 1,
"goods_state": null,
"add_time": 1512954923,
"upd_time": 1512954923,
"hot_mumber": 0,
"is_promote": false
}
]
},
"meta": {
"msg": "获取成功",
"status": 200
}
}
```
### 添加商品
- 请求路径:goods
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| --------------- | ------------------------------ | -------- |
| goods_name | 商品名称 | 不能为空 |
| goods_cat | 以为','分割的分类列表 (字符串) | 不能为空 |
| goods_price | 价格 | 不能为空 |
| goods_number | 数量 | 不能为空 |
| goods_weight | 重量 | 不能为空 |
| goods_introduce | 介绍 | 可以为空 |
| pics | 上传的图片临时路径(对象) | 可以为空 |
- 请求数据
```
{
"goods_name":"test_goods_name2",
"goods_price":20,
"goods_number":30,
"goods_weight":40,
"goods_introduce":"abc",
"pics":[
{"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}
],
"attrs":[
{
"attr_id":15,
"attr_value":"ddd"
},
{
"attr_id":15,
"attr_value":"eee"
}
]
}
```
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------------ | -------------------------- | ------------------------------------------------------------ |
| total | 总共商品条数 | |
| pagenum | 当前商品页数 | |
| goods_id | 商品 ID | |
| goods_cat | 以为','分割的分类列表 | |
| goods_name | 商品名称 | |
| goods_price | 价格 | |
| goods_number | 数量 | |
| goods_weight | 重量 | 不能为空 |
| goods_state | 商品状态 | 商品状态 0: 未通过 1: 审核中 2: 已审核 |
| add_time | 添加时间 | |
| upd_time | 更新时间 | |
| hot_mumber | 热销品数量 | |
| is_promote | 是否是热销品 | |
| pics | 上传的图片临时路径(对象) | pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图 |
| attrs | 商品的参数(数组) | goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选, |
- 响应数据
```
{
"data": {
"goods_id": 145,
"goods_name": "test_goods_name2",
"goods_price": 20,
"cat_id": 1,
"goods_number": 30,
"goods_weight": 40,
"goods_introduce": "abc",
"goods_big_logo": "",
"goods_small_logo": "",
"goods_state": 1,
"add_time": 1512962370,
"upd_time": 1512962370,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 397,
"goods_id": 145,
"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
"pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
"pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
}
],
"attrs": [
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "创建商品成功",
"status": 201
}
}
```
### 根据 ID 查询商品
- 请求路径:goods/:id
- 请求方法:get
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | --------------------- |
| id | 商品 ID | 不能为空`携带在url中` |
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------------ | -------------------------- | ------------------------------------------------------------ |
| total | 总共商品条数 | |
| pagenum | 当前商品页数 | |
| goods_id | 商品 ID | |
| goods_name | 商品名称 | |
| goods_price | 价格 | |
| goods_number | 数量 | |
| goods_weight | 重量 | 不能为空 |
| goods_state | 商品状态 | 商品状态 0: 未通过 1: 审核中 2: 已审核 |
| add_time | 添加时间 | |
| upd_time | 更新时间 | |
| hot_mumber | 热销品数量 | |
| is_promote | 是否是热销品 | |
| pics | 上传的图片临时路径(对象) | pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图 |
| attrs | 商品的参数(数组) | goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选, |
- 响应数据
```
{
"data": {
"goods_id": 145,
"goods_name": "test_goods_name2",
"goods_price": 20,
"goods_number": 30,
"goods_weight": 40,
"goods_introduce": "abc",
"goods_big_logo": "",
"goods_small_logo": "",
"goods_state": 1,
"add_time": 1512962370,
"upd_time": 1512962370,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 397,
"goods_id": 145,
"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
"pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
"pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
}
],
"attrs": [
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "创建商品成功",
"status": 201
}
}
```
### 编辑提交商品
- 请求路径:goods/:id
- 请求方法:put
- 请求参数
| 参数名 | 参数说明 | 备注 |
| --------------- | -------------------------- | --------------------- |
| id | 商品 ID | 不能为空`携带在url中` |
| goods_name | 商品名称 | 不能为空 |
| goods_price | 价格 | 不能为空 |
| goods_number | 数量 | 不能为空 |
| goods_weight | 重量 | 不能为空 |
| goods_introduce | 介绍 | 可以为空 |
| pics | 上传的图片临时路径(对象) | 可以为空 |
| attrs | 商品的参数(数组) | 可以为空 |
- 请求数据
```
{
"goods_name":"test_goods_name2",
"goods_price":20,
"goods_number":30,
"goods_weight":40,
"goods_introduce":"abc",
"pics":[
{"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}
],
"attrs":[
{
"attr_id":15,
"attr_value":"ddd"
},
{
"attr_id":15,
"attr_value":"eee"
}
]
}
```
- 响应参数
| 参数名 | 参数说明 | 备注 |
| ------------ | -------------------------- | ------------------------------------------------------------ |
| total | 总共商品条数 | |
| pagenum | 当前商品页数 | |
| goods_id | 商品 ID | |
| goods_name | 商品名称 | |
| goods_price | 价格 | |
| goods_number | 数量 | |
| goods_weight | 重量 | 不能为空 |
| goods_state | 商品状态 | 商品状态 0: 未通过 1: 审核中 2: 已审核 |
| add_time | 添加时间 | |
| upd_time | 更新时间 | |
| hot_mumber | 热销品数量 | |
| is_promote | 是否是热销品 | |
| pics | 上传的图片临时路径(对象) | pics_id:图片 ID,goods_id:商品 ID,pics_big:大图,pics_mid:中图,pics_sma:小图 |
| attrs | 商品的参数(数组) | goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:手动输入,还是单选, |
- 响应数据
```
{
"data": {
"goods_id": 145,
"goods_name": "test_goods_name2",
"goods_price": 20,
"goods_number": 30,
"goods_weight": 40,
"goods_introduce": "abc",
"goods_big_logo": "",
"goods_small_logo": "",
"goods_state": 1,
"add_time": 1512962370,
"upd_time": 1512962370,
"hot_mumber": 0,
"is_promote": false,
"pics": [
{
"pics_id": 397,
"goods_id": 145,
"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8",
"pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8",
"pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"
}
],
"attrs": [
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "ddd",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
},
{
"goods_id": 145,
"attr_id": 15,
"attr_value": "eee",
"add_price": null,
"attr_name": "fffffff",
"attr_sel": "many",
"attr_write": "list",
"attr_vals": ""
}
]
},
"meta": {
"msg": "创建商品成功",
"status": 201
}
}
```
## 图片上传
- 请求路径:upload
- 请求方法:post
- 请求参数
| 参数名 | 参数说明 | 备注 |
| ------ | -------- | ---- |
| file | 上传文件 | |
- 响应数据
```
{
"data": {
"tmp_path": "tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png",
"url": "http://127.0.0.1:8888tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png"
},
"meta": {
"msg": "上传成功",
"status": 200
}
}
```
一键复制
编辑
Web IDE
原始数据
按行查看
历史
小马哥服务器系统激活,Vue项目接口.md相关推荐
- vue项目html,Vue项目接口.html
Vue项目接口 电商管理后台API接口文档 接口说明 接口基准地址:http://localhost:8888/api/private/v1/ 服务端已开启 CORS 跨域支持 API V1 认证统一 ...
- Windows服务器部署前端vue项目
阿里云Windows服务器部署前端vue项目 准备工作 下载node.js(略)http://nodejs.cn/download/ 下载Nginx http://nginx.org/en/downl ...
- vue考试系统后台管理项目-接口封装调用
上一篇文章 : vue考试系统后台管理项目-登录.记住密码功能_船长在船上的博客-CSDN博客 考试系统后台管理项目介绍: 技术选型:Vue2.0+Element-ui 项目功能介绍: 账户信息模块: ...
- vue项目接口地址暴露_vue项目打包后可以配置接口地址的方法
因为项目测试的需要,我需要给测试人员一个项目的测试环境版本和生产环境版本,两个版本的区别就是请求的接口地址不一样而已,一开始,我是在webpack配置了不同的命令,让测试去打包,比如:使用npm ru ...
- vue项目接口地址暴露_vue组件暴露和.js文件暴露接口操作
1.将同一类型的组件放在一个文件夹下 2.在此文件夹下创建一个index.js 3.在index.js中导入组件,并把他们暴露出去 1.写法一 import studentCourse1 from ' ...
- 惠普g7服务器系统激活,技术解析:八路惠普ProLiant DL980 G7
[IT168 技术]惠普ProLiant DL 980 G7是惠普于2011年4月发布的一款8路企业级服务器,它采用惠普独有的HP PREMA架构,智能CPU高速缓存和冗余系统架构,可有效减少瓶颈,提 ...
- Ubuntu服务器上部署Vue项目
一.创建Vue项目 用管理员权限打开命令行窗口,用vue-cli 来新建一个项目,执行->vue create [项目名称],我这里项目名称为testapp,回车命令行之后会有这么一个弹窗让你选 ...
- 华为服务器系统激活id怎么更改,服务器id怎么设置
服务器id怎么设置 内容精选 换一换 VPC终端节点支持将云服务或者用户私有服务配置为可被终端节点访问的终端节点服务.终端节点服务包括"网关"和"接口"两种类型 ...
- vue项目打包丢入服务器,浅谈vue项目如何打包扔向服务器
当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中.我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上. 如果是 v ...
- vue项目接口地址暴露_Vue.js 项目接口管理
在vue开发中,会涉及到很多接口的处理,当项目足够大时,就需要定义规范统一的接口,如何定义呢? 本文使用vue-cli生成的项目举例. 第一步.在src目录下新建一个文件夹http,在http目录下建 ...
最新文章
- Windows搭建golang开发平台
- leetcode_Jump Game II
- JavaWeb开发概述
- 2016年Android实习岗位 腾讯二面+阿里一面
- 链表的基本操作 java_Java-实现链表的基本操作
- csv文件设置每个cell大小_Python对文本文件和Excel的处理机制
- Android Jetpack组件之数据库Room详解(二)
- 51信用卡在微服务架构下的监控平台架构实践
- 雷达线性调频信号的脉冲压缩处理
- 全面解读设备状态监测
- 数据库恢复时出现诸如“设备激活错误
- HP34401a实现高精度温度测量
- 【数据库优化】记一次引入Elasticsearch的系统架构实战
- ZOJ 3797 Sister's Noise 组合+DP
- 关于renameTo的用法
- python写梦幻西游手游脚本辅助_深入解析Lua脚本加密技术,给游戏代码加上“紧箍咒”...
- 时钟周期 主频 CPU执行时间
- 大数据概况以及Hadoop生态系统
- 半监督3D医学图像分割(四):SASSNet
- 文件时间修改器,修改文件创建时间、修改时间
热门文章
- Python-Django毕业设计小斌美食网站(程序+LW)
- android P 锁屏初探 ——3 power键锁屏流程
- 【CSDN2012年度博客之星】喜欢本博客的读者,投票赠送《visual C++2010开发权威指南》电子稿--感谢支持 ~(截至到2012年12月30日)
- 考研小作文真题、范文及讲解
- Win7中删除桌面IE图标
- GLM 中的mat4
- 锁仓怎么解_锁仓和解锁的方法
- 投影仪幕布增益_别再说幕布是花瓶 投影幕布的作用原来这么大
- seo入门需掌握的基础知识
- 宝塔面板服务器ip地址修改_服务器搭建网站完整教程(宝塔面板+wordpress)