shopApi

商城API项目


商品列表

<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&amp;page=1", "from": 1, "next_page_url": "http://api.test/api/goods?comments_count=1&amp;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>

页面列表

ITEM_HTML