POSTcookbook-list
菜谱查询
菜谱查询
接入文档
接口简介
本接口提供结构化的菜谱数据查询服务。开发者可通过指定菜品分类(支持一级至三级分类)、菜品名称或唯一ID进行检索。接口返回包含菜名、分类层级、缩略图、所需原料列表以及分步烹饪指南在内的完整数据结构,适用于需要展示详细食谱信息的业务场景。
适用场景
- 美食类APP/网站:丰富站内菜谱库,提供标准化的做菜教程。
- 智能硬件集成:为智能厨电、烹饪机器人提供标准化的指令步骤数据。
- 内容聚合平台:快速构建垂直领域的饮食内容板块,支持按肉类、蔬菜等维度筛选。
请求与返回说明
- 请求方式:POST
- 核心参数:
type(必填):菜谱分类,建议使用一级或二级分类标签。name(选填):模糊搜索菜品名称。id(选填):指定菜谱ID获取单条详情。pageNo/pageSize:控制分页数据,默认每页20条。- 返回结果:
- 基础信息:菜名、多级分类标签、创建时间。
- 多媒体资源:小图(
smallImag)与大图(largeImg)链接。 - 核心内容:
yl数组包含原料名称与单位;steps数组包含有序的操作步骤文本。
接入建议
- 缓存策略:菜谱数据相对静态,建议对热门分类或特定ID的结果进行本地缓存,减少API调用频次。
- 图片处理:返回的图片URL可能为空,前端需做好缺省图适配。
- 分页逻辑:首次加载可请求第一页,根据返回的
totalPage实现懒加载或分页器,避免一次性拉取大量数据。
接入示例代码
提供 Shell、Python、Go、Java、PHP 等常见接入示例,便于直接接到现有项目里。
请求示例
{
"type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",
"pageNo": "请求页数 默认第1页",
"pageSize": "每页返回的最大结果集,默认20",
"id": "菜谱标识 菜谱列表中id,可以用id查询详细",
"name": "菜品名称"
}响应示例
{
"code": 200,
"msg": "成功",
"taskNo": "025008804237815320489132",
"data": {
"totalPage": 61,
"pageNo": 1,
"pageSize": 20,
"totalCount": 1214,
"items": [
{
"type": "肉类 兔肉 兔肉",
"typeV1": "肉类",
"typeV2": "兔肉",
"typeV3": "兔肉",
"name": "泰顺腊兔肉",
"desc": "",
"tip": "",
"id": "5c4c75b3e9b6cc139e5dd87a",
"createTime": "2019-01-26 22:58:59.575",
"smallImag": "",
"largeImg": "",
"steps": [
{
"orderNum": 1,
"content": "腊兔肉切好,锅里放多油,油热后放入腊兔肉爆炒一会儿,然后放入姜蒜葱白胡萝卜爆香!炒之前用料酒酱油盐鸡精白糖调好的汁倒入锅中,等入味了就可以放葱香菜起锅了!"
}
],
"yl": [
{
"ylUnit": "胡萝卜",
"ylName": "泰顺腊兔子"
},
{
"ylUnit": "姜",
"ylName": "葱"
},
{
"ylUnit": "香菜",
"ylName": "蒜"
}
]
}
]
}
}请求字段
以下字段根据示例 JSON 自动提取,仅作接入参考。
| 字段路径 | 类型 | 示例值 |
|---|---|---|
| type | string | object |
| properties | object | {...} |
| properties.type | object | {...} |
| properties.type.type | string | string |
| properties.type.description | string | 菜谱的分类(查询时请使用分类中的一级或二级分类) |
| properties.pageNo | object | {...} |
| properties.pageNo.type | string | string |
响应字段
以下字段根据示例 JSON 自动提取,仅作接入参考。
| 字段路径 | 类型 | 示例值 |
|---|---|---|
| type | string | object |
| properties | object | {...} |
| properties.code | object | {...} |
| properties.code.type | string | number |
| properties.code.example | number | 200 |
| properties.msg | object | {...} |
| properties.msg.type | string | string |
| properties.msg.example |