商品列表
<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, 倒序</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, 倒序</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, 倒序</td>
</tr>
</tbody>
</table>
<p><code>sales recommend price comments_count 这四个排序字段,每次只传一个, 值为1。也可以四个参数都传,但是只能有一个值为1, 其他的为0。如果有多个参数的值为1, 结果可能不会达到预期。</code></p>
<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 商品详情</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;">string</td>
<td>自增长主键ID</td>
</tr>
<tr>
<td style="text-align: left;">category_id</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</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;">price</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td>价格</td>
</tr>
<tr>
<td style="text-align: left;">sales</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</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;">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>
<p><code>子级字段与父级字段一样, 分类最多只有3层</code></p>
<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;">collects_count</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>
</tbody>
</table>
<h5>返回示例</h5>
<ul>
<li>状态码 200 请求成功</li>
</ul>
<pre><code>{
"goods": {
"current_page": 1,
"data": [
{
"id": 236,
"title": "Qui est assumenda.",
"price": 954,
"cover": "http://placeimg.com/640/480/any",
"category_id": 63,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 2,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 235,
"title": "Cum dignissimos aut.",
"price": 92,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 1,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 253,
"title": "Ut omnis et.",
"price": 884,
"cover": "http://placeimg.com/640/480/any",
"category_id": 63,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 300,
"title": "Magnam repellat.",
"price": 992,
"cover": "http://placeimg.com/640/480/any",
"category_id": 64,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 257,
"title": "Ipsa soluta sint.",
"price": 965,
"cover": "http://placeimg.com/640/480/any",
"category_id": 73,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 272,
"title": "Porro quia aut.",
"price": 155,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 285,
"title": "Ut id et error.",
"price": 811,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 264,
"title": "Sed officia.",
"price": 470,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 273,
"title": "Et omnis quos et.",
"price": 277,
"cover": "http://placeimg.com/640/480/any",
"category_id": 66,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 286,
"title": "Qui nam quos error.",
"price": 62,
"cover": "http://placeimg.com/640/480/any",
"category_id": 63,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 237,
"title": "Placeat perferendis.",
"price": 170,
"cover": "http://placeimg.com/640/480/any",
"category_id": 64,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 265,
"title": "Occaecati error.",
"price": 47,
"cover": "http://placeimg.com/640/480/any",
"category_id": 64,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 276,
"title": "Similique aut quod.",
"price": 726,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 287,
"title": "Eius assumenda sint.",
"price": 963,
"cover": "http://placeimg.com/640/480/any",
"category_id": 67,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 240,
"title": "Possimus et nihil.",
"price": 259,
"cover": "http://placeimg.com/640/480/any",
"category_id": 64,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 267,
"title": "Magnam magnam sint.",
"price": 333,
"cover": "http://placeimg.com/640/480/any",
"category_id": 66,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 277,
"title": "Accusantium sit.",
"price": 45,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 289,
"title": "Animi enim in eum.",
"price": 149,
"cover": "http://placeimg.com/640/480/any",
"category_id": 74,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 241,
"title": "Iure qui maiores.",
"price": 896,
"cover": "http://placeimg.com/640/480/any",
"category_id": 70,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 268,
"title": "Aspernatur sapiente.",
"price": 883,
"cover": "http://placeimg.com/640/480/any",
"category_id": 73,
"sales": 0,
"updated_at": "2021-09-17T01:49:18.000000Z",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
}
],
"first_page_url": "http://api.test/api/goods?comments_count=1&page=1",
"from": 1,
"next_page_url": "http://api.test/api/goods?comments_count=1&page=2",
"path": "http://api.test/api/goods",
"per_page": 20,
"prev_page_url": null,
"to": 20
},
"recommend_goods": [
{
"id": 87,
"title": "Qui quia qui.",
"price": 994,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 84,
"title": "Impedit libero.",
"price": 35,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 59,
"title": "Est aut.",
"price": 599,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 101,
"title": "Blanditiis qui.",
"price": 511,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 161,
"title": "Aut maiores illum.",
"price": 109,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 112,
"title": "Sunt et unde eius.",
"price": 446,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 104,
"title": "Laborum numquam.",
"price": 157,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 92,
"title": "Esse tempora et.",
"price": 40,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 89,
"title": "Odit voluptatibus.",
"price": 412,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
},
{
"id": 291,
"title": "Reiciendis et.",
"price": 79,
"cover": "http://placeimg.com/640/480/any",
"comments_count": 0,
"cover_url": "http://placeimg.com/640/480/any"
}
],
"categories": [
{
"id": 61,
"pid": 0,
"name": "电子数码",
"level": 1,
"status": 1,
"children": [
{
"id": 62,
"pid": 61,
"name": "手机",
"level": 2,
"status": 1,
"children": [
{
"id": 63,
"pid": 62,
"name": "华为",
"level": 3,
"status": 1
},
{
"id": 64,
"pid": 62,
"name": "小米",
"level": 3,
"status": 1
}
]
},
{
"id": 65,
"pid": 61,
"name": "电脑",
"level": 2,
"status": 1,
"children": [
{
"id": 66,
"pid": 65,
"name": "联想",
"level": 3,
"status": 1
},
{
"id": 67,
"pid": 65,
"name": "戴尔",
"level": 3,
"status": 1
}
]
}
]
},
{
"id": 68,
"pid": 0,
"name": "服装衣帽",
"level": 1,
"status": 1,
"children": [
{
"id": 69,
"pid": 68,
"name": "男装",
"level": 2,
"status": 1,
"children": [
{
"id": 70,
"pid": 69,
"name": "海澜之家",
"level": 3,
"status": 1
},
{
"id": 71,
"pid": 69,
"name": "Nike",
"level": 3,
"status": 1
}
]
},
{
"id": 72,
"pid": 68,
"name": "女装",
"level": 2,
"status": 1,
"children": [
{
"id": 73,
"pid": 72,
"name": "欧时力",
"level": 3,
"status": 1
},
{
"id": 74,
"pid": 72,
"name": "Only",
"level": 3,
"status": 1
}
]
}
]
}
]
}</code></pre>