商品列表
<h5>接口描述</h5>
<ul>
<li>商品列表</li>
</ul>
<h5>请求URL</h5>
<ul>
<li><code>/api/goods</code></li>
</ul>
<h5>请求方式</h5>
<ul>
<li>GET</li>
</ul>
<h5>Query 请求参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">page</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>分页</td>
</tr>
<tr>
<td style="text-align: left;">title</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td>商品名模糊搜索</td>
</tr>
<tr>
<td style="text-align: left;">category_id</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>分类搜索</td>
</tr>
<tr>
<td style="text-align: left;">sales</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>销量排序,值为1, 倒序, 值为2,正序</td>
</tr>
<tr>
<td style="text-align: left;">recommend</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>推荐, 值为1,获取推荐商品</td>
</tr>
<tr>
<td style="text-align: left;">price</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>价格排序,值为1, 倒序, 值为2,正序</td>
</tr>
<tr>
<td style="text-align: left;">comments_count</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>评论数排序,值为1, 倒序, 值为2,正序</td>
</tr>
</tbody>
</table>
<blockquote>
<p>sales recommend price comments_count 这四个排序字段,每次只传一个, 值为(1 或 2)。也可以四个参数都传,但是只能有一个值为(1 或 2), 其他的为0。如果有多个参数的值为(1 或 2), 结果可能不会达到预期。</p>
</blockquote>
<h5>返回参数</h5>
<p><strong>goods 分页相关数据</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">current_page</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>当前页</td>
</tr>
<tr>
<td style="text-align: left;">from</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>起始量</td>
</tr>
<tr>
<td style="text-align: left;">to</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>结束量</td>
</tr>
<tr>
<td style="text-align: left;">first_page_url</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>第一页url</td>
</tr>
<tr>
<td style="text-align: left;">next_page_url</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>下一页url</td>
</tr>
<tr>
<td style="text-align: left;">prev_page_url</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>上一页url</td>
</tr>
<tr>
<td style="text-align: left;">path</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>资源路径</td>
</tr>
<tr>
<td style="text-align: left;">per_page</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>每页数量</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">array</td>
<td>商品数据见下表</td>
</tr>
</tbody>
</table>
<p><strong>goods.data 商品数据</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>自增长主键ID</td>
</tr>
<tr>
<td style="text-align: left;">title</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>标题</td>
</tr>
<tr>
<td style="text-align: left;">price</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>价格</td>
</tr>
<tr>
<td style="text-align: left;">sales</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>销量</td>
</tr>
<tr>
<td style="text-align: left;">cover</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>封面图</td>
</tr>
<tr>
<td style="text-align: left;">cover_url</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>封面图url</td>
</tr>
<tr>
<td style="text-align: left;">updated_at</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">timestamp</td>
<td>修改时间</td>
</tr>
<tr>
<td style="text-align: left;">category_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>分类</td>
</tr>
<tr>
<td style="text-align: left;">comments_count</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>评论数量</td>
</tr>
<tr>
<td style="text-align: left;">collects_count</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>收藏人数</td>
</tr>
</tbody>
</table>
<p><strong>categories 分类数据</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>自增长主键ID</td>
</tr>
<tr>
<td style="text-align: left;">pid</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>父级id</td>
</tr>
<tr>
<td style="text-align: left;">name</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>标题</td>
</tr>
<tr>
<td style="text-align: left;">level</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>层级</td>
</tr>
<tr>
<td style="text-align: left;">status</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>是否启用 0不启用 1启用</td>
</tr>
<tr>
<td style="text-align: left;">children</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">array</td>
<td>子级</td>
</tr>
</tbody>
</table>
<blockquote>
<p>子级字段与父级字段一直, 分类最多只有3层</p>
</blockquote>
<p><strong>recommend_goods 推荐商品-PC适用</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必含</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>自增长主键ID</td>
</tr>
<tr>
<td style="text-align: left;">title</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>标题</td>
</tr>
<tr>
<td style="text-align: left;">price</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>价格</td>
</tr>
<tr>
<td style="text-align: left;">cover</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>封面图</td>
</tr>
<tr>
<td style="text-align: left;">cover_url</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>封面图url</td>
</tr>
<tr>
<td style="text-align: left;">comments_count</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>评论数量</td>
</tr>
<tr>
<td style="text-align: left;">collects_count</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>收藏人数</td>
</tr>
</tbody>
</table>
<h5>返回示例</h5>
<ul>
<li>状态码 200 请求成功</li>
</ul>
<pre><code>{
"goods": {
"current_page": 1,
"data": [
{
"id": 1,
"title": "《产品经理手册》",
"price": 45,
"cover": "product/2020-0820-5f3e17d6ed7e8.png",
"category_id": 21,
"sales": 0,
"updated_at": "2021-01-04T00:16:39.000000Z",
"comments_count": 0,
"collects_count": 0,
"cover_url": "https://wqqx2020.oss-cn-beijing.aliyuncs.com/product/2020-0820-5f3e17d6ed7e8.png"
},
{
"id": 2,
"title": "《Linux私房菜》",
"price": 55,
"cover": "product/2020-0820-5f3e177b79824.png",
"category_id": 17,
"sales": 0,
"updated_at": "2021-01-04T00:16:39.000000Z",
"comments_count": 0,
"collects_count": 0,
"cover_url": "https://wqqx2020.oss-cn-beijing.aliyuncs.com/product/2020-0820-5f3e177b79824.png"
}
],
"first_page_url": "http://bookshopapi.mamp/api/goods?recommend=0&page=1",
"from": 1,
"next_page_url": "http://bookshopapi.mamp/api/goods?recommend=0&page=2",
"path": "http://bookshopapi.mamp/api/goods",
"per_page": 10,
"prev_page_url": null,
"to": 10
},
"recommend_goods": [
{
"id": 156,
"title": "《人工智能》",
"price": 45,
"cover": "product/2020-0820-5f3e156b2c657.png",
"comments_count": 0,
"collects_count": 0,
"cover_url": "https://wqqx2020.oss-cn-beijing.aliyuncs.com/product/2020-0820-5f3e156b2c657.png"
},
{
"id": 52,
"title": "《Java核心编程》",
"price": 32,
"cover": "product/2020-0820-5f3e16c2aba88.png",
"comments_count": 0,
"collects_count": 0,
"cover_url": "https://wqqx2020.oss-cn-beijing.aliyuncs.com/product/2020-0820-5f3e16c2aba88.png"
}
],
"categories": [
{
"id": 1,
"pid": 0,
"name": "前沿",
"level": 1,
"status": 1,
"children": [
{
"id": 2,
"pid": 1,
"name": "区块链",
"level": 2,
"status": 1
},
{
"id": 3,
"pid": 1,
"name": "人工智能",
"level": 2,
"status": 1
}
]
},
{
"id": 4,
"pid": 0,
"name": "前端",
"level": 1,
"status": 1,
"children": [
{
"id": 5,
"pid": 4,
"name": "小程序",
"level": 2,
"status": 1
},
{
"id": 6,
"pid": 4,
"name": "JavaScript",
"level": 2,
"status": 1
},
{
"id": 7,
"pid": 4,
"name": "HTML/CSS",
"level": 2,
"status": 1
},
{
"id": 8,
"pid": 4,
"name": "Vue",
"level": 2,
"status": 1
},
{
"id": 9,
"pid": 4,
"name": "React",
"level": 2,
"status": 1
},
{
"id": 10,
"pid": 4,
"name": "ES6",
"level": 2,
"status": 1
},
{
"id": 11,
"pid": 4,
"name": "Node.js",
"level": 2,
"status": 1
}
]
},
{
"id": 12,
"pid": 0,
"name": "后端",
"level": 1,
"status": 1,
"children": [
{
"id": 13,
"pid": 12,
"name": "Java",
"level": 2,
"status": 1
},
{
"id": 14,
"pid": 12,
"name": "PHP",
"level": 2,
"status": 1
},
{
"id": 15,
"pid": 12,
"name": "Python",
"level": 2,
"status": 1
},
{
"id": 16,
"pid": 12,
"name": "GoLang",
"level": 2,
"status": 1
}
]
},
{
"id": 17,
"pid": 0,
"name": "云计算",
"level": 1,
"status": 1,
"children": [
{
"id": 18,
"pid": 17,
"name": "私有云",
"level": 2,
"status": 1
},
{
"id": 19,
"pid": 17,
"name": "公有云",
"level": 2,
"status": 1
},
{
"id": 20,
"pid": 17,
"name": "混合云",
"level": 2,
"status": 1
}
]
},
{
"id": 21,
"pid": 0,
"name": "产品设计",
"level": 1,
"status": 1,
"children": [
{
"id": 22,
"pid": 21,
"name": "UI设计",
"level": 2,
"status": 1
},
{
"id": 23,
"pid": 21,
"name": "网站设计",
"level": 2,
"status": 1
}
]
},
{
"id": 47,
"pid": 0,
"name": "前沿",
"level": 1,
"status": 1,
"children": [
{
"id": 48,
"pid": 47,
"name": "区块链",
"level": 2,
"status": 1
},
{
"id": 49,
"pid": 47,
"name": "人工智能",
"level": 2,
"status": 1
}
]
},
{
"id": 50,
"pid": 0,
"name": "前端",
"level": 1,
"status": 1,
"children": [
{
"id": 51,
"pid": 50,
"name": "小程序",
"level": 2,
"status": 1
},
{
"id": 52,
"pid": 50,
"name": "JavaScript",
"level": 2,
"status": 1
},
{
"id": 53,
"pid": 50,
"name": "HTML/CSS",
"level": 2,
"status": 1
},
{
"id": 54,
"pid": 50,
"name": "Vue",
"level": 2,
"status": 1
},
{
"id": 55,
"pid": 50,
"name": "React",
"level": 2,
"status": 1
},
{
"id": 56,
"pid": 50,
"name": "ES6",
"level": 2,
"status": 1
},
{
"id": 57,
"pid": 50,
"name": "Node.js",
"level": 2,
"status": 1
}
]
},
{
"id": 58,
"pid": 0,
"name": "后端",
"level": 1,
"status": 1,
"children": [
{
"id": 59,
"pid": 58,
"name": "Java",
"level": 2,
"status": 1
},
{
"id": 60,
"pid": 58,
"name": "PHP",
"level": 2,
"status": 1
},
{
"id": 61,
"pid": 58,
"name": "Python",
"level": 2,
"status": 1
},
{
"id": 62,
"pid": 58,
"name": "GoLang",
"level": 2,
"status": 1
}
]
},
{
"id": 63,
"pid": 0,
"name": "云计算",
"level": 1,
"status": 1,
"children": [
{
"id": 64,
"pid": 63,
"name": "私有云",
"level": 2,
"status": 1
},
{
"id": 65,
"pid": 63,
"name": "公有云",
"level": 2,
"status": 1
},
{
"id": 66,
"pid": 63,
"name": "混合云",
"level": 2,
"status": 1
}
]
},
{
"id": 67,
"pid": 0,
"name": "产品设计",
"level": 1,
"status": 1,
"children": [
{
"id": 68,
"pid": 67,
"name": "UI设计",
"level": 2,
"status": 1
},
{
"id": 69,
"pid": 67,
"name": "网站设计",
"level": 2,
"status": 1
}
]
}
]
}</code></pre>