菜谱大全
<p>[TOC]</p>
<h3>1 接口调用说明</h3>
<p>查询菜谱的分类及菜名的具体信息。包含菜名、原料/配方和制作流程。可按分类、关键词检索。</p>
<h4>1.1 请求方式</h4>
<p>如接口没有单独说明,所有接口均为:<strong>POST</strong></p>
<h4>1.2 请求格式</h4>
<p>如接口没有单独说明,所有接口均为:<strong>application/x-www-form-urlencoded</strong></p>
<h4>1.3 请求参数</h4>
<p>请求参数包括公共参数和业务参数(业务参数见具体接口说明)
调用接口时,需要把<strong>公共参数</strong>和<strong>业务参数</strong>一并放在<strong>请求参数</strong>中提交</p>
<h5>1.3.1 公共请求参数</h5>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>String</td>
<td>是</td>
<td>服务商分配的唯一标识</td>
</tr>
<tr>
<td>timestamp</td>
<td>Long</td>
<td>是</td>
<td>当前时间戳(毫秒)</td>
</tr>
<tr>
<td>sign</td>
<td>String</td>
<td>是</td>
<td>签名,详见<a href="#签名算法">签名算法说明</a></td>
</tr>
</tbody>
</table>
<p><a name="签名算法"></a></p>
<h5>1.3.2 签名算法说明</h5>
<pre><code>sign = sha256(appId + appSecret + timestamp)</code></pre>
<p>用服务商分配的 <strong>appId</strong>、服务商分配的 <strong>appSecret</strong>,当前时间戳(毫秒) <strong>timestamp</strong>,按上述顺序拼接成字符串,再进行 <strong>sha256</strong> 哈希得到。如下:</p>
<pre><code class="language-java">String appId = &quot;xyzxy2121zxyz&quot;;
String timestamp = &quot;1555378976238&quot;;
String appSecret = &quot;efcefcef1121cefcefc1212121&quot;;
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h4>1.4 返回说明</h4>
<h5>1.4.1 公共返回字段说明</h5>
<p>所有接口均返回以下公共字段:</p>
<table>
<thead>
<tr>
<th>字段名</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>返回码,详见:code返回码说明</td>
</tr>
<tr>
<td>msg</td>
<td>code对应的描述</td>
</tr>
<tr>
<td>charge</td>
<td>计费标志 true为计费,false为不计费</td>
</tr>
<tr>
<td>taskNo</td>
<td>本次请求号</td>
</tr>
<tr>
<td>data</td>
<td>返回具体结果,object类型,详见data返回字段描述</td>
</tr>
</tbody>
</table>
<p><a name="code返回码说明"></a></p>
<h5>1.4.2 code返回码说明</h5>
<table>
<thead>
<tr>
<th>code</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>成功</td>
</tr>
<tr>
<td>201</td>
<td>查无数据</td>
</tr>
<tr>
<td>400</td>
<td>参数错误</td>
</tr>
<tr>
<td>404</td>
<td>接口地址不正确</td>
</tr>
<tr>
<td>500</td>
<td>系统维护,请稍候再试</td>
</tr>
<tr>
<td>601</td>
<td>接口未开通</td>
</tr>
<tr>
<td>602</td>
<td>账号停用</td>
</tr>
<tr>
<td>604</td>
<td>接口停用</td>
</tr>
<tr>
<td>606</td>
<td>调用超限,请稍候再试</td>
</tr>
<tr>
<td>607</td>
<td>ip不在白名单</td>
</tr>
<tr>
<td>609</td>
<td>请求过于频繁,请稍候再试</td>
</tr>
<tr>
<td>610</td>
<td>请求超时</td>
</tr>
<tr>
<td>999</td>
<td>其他,以实际返回为准</td>
</tr>
</tbody>
</table>
<hr />
<h3>2 菜谱大全-分类查询</h3>
<h4>2.1 接口描述</h4>
<ul>
<li>查询分类,本分类分为三级,例如 蛋奶豆制品->蛋类->鸡蛋</li>
</ul>
<h4>2.2 请求地址</h4>
<p><code>https://api.jumdata.com/cookbook/type</code></p>
<h4>2.3 业务参数</h4>
<p>无</p>
<h4>2.4 成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200,// 返回码,详见返回码说明
&quot;msg&quot;: &quot;成功&quot;,// 返回码对应描述
&quot;taskNo&quot;: &quot;034535576236862617236272&quot;,// 本次请求号
&quot;charge&quot;: true,// 计费标志
&quot;data&quot;: {
&quot;items&quot;: {
&quot;肉类&quot;: {
&quot;鸽子&quot;: [
&quot;鸽子&quot;
]
......
&quot;兔肉&quot;: [
&quot;兔肉&quot;
]
}
}
}
}
}
</code></pre>
<hr />
<h3>3 菜谱大全-菜谱查询</h3>
<h4>3.1 接口描述</h4>
<ul>
<li>查询菜谱的具体信息,包括菜名\菜谱操作步骤\配料和相关图片</li>
</ul>
<h4>3.2 请求地址</h4>
<p><code>https://api.jumdata.com/cookbook/list</code></p>
<h4>3.3 业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>type</td>
<td>String</td>
<td>是</td>
<td>菜谱的分类(查询时请使用分类中的一级或二级分类)</td>
</tr>
<tr>
<td>pageNo</td>
<td>Integer</td>
<td>否</td>
<td>请求页数 默认第1页</td>
</tr>
<tr>
<td>pageSize</td>
<td>Integer</td>
<td>否</td>
<td>每页返回的最大结果集,默认20</td>
</tr>
<tr>
<td>id</td>
<td>String</td>
<td>否</td>
<td>菜谱标识 菜谱列表中id,可以用id查询详细</td>
</tr>
<tr>
<td>name</td>
<td>String</td>
<td>否</td>
<td>菜品名称</td>
</tr>
</tbody>
</table>
<h4>3.4 成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200,
&quot;msg&quot;: &quot;成功&quot;,
&quot;taskNo&quot;: &quot;025008804237815320489132&quot;,
&quot;charge&quot;: true,
&quot;data&quot;: {
&quot;totalPage&quot;: 61,//总页数
&quot;pageNo&quot;: 1,//当前页
&quot;pageSize&quot;: 20,//每页返回最大记录数
&quot;totalCount&quot;: 1214, //总记录
&quot;items&quot;: [
{
&quot;type&quot;: &quot;肉类 兔肉 兔肉&quot;,//分类信息
&quot;typeV1&quot;: &quot;肉类&quot;,//一级分类
&quot;typeV2&quot;: &quot;兔肉&quot;,//二级分类
&quot;typeV3&quot;: &quot;兔肉&quot;,//三级分类
&quot;name&quot;: &quot;泰顺腊兔肉&quot;,//菜谱名称
&quot;desc&quot;: &quot;&quot;,
&quot;tip&quot;: &quot;&quot;,//提示信息
&quot;id&quot;: &quot;5c4c75b3e9b6cc139e5dd87a&quot;,//菜谱标识
&quot;createTime&quot;: &quot;2019-01-26 22:58:59.575&quot;,
&quot;smallImag&quot;: &quot;&quot;,//小图url
&quot;largeImg&quot;: &quot;&quot;,//大图url
&quot;steps&quot;: [ //操作步骤
{
&quot;orderNum&quot;: 1,
&quot;content&quot;: &quot;腊兔肉切好,锅里放多油,油热后放入腊兔肉爆炒一会儿,然后放入姜蒜葱白胡萝卜爆香!炒之前用料酒酱油盐鸡精白糖调好的汁倒入锅中,等入味了就可以放葱香菜起锅了!&quot;
}
],
&quot;yl&quot;: [//原料/配方
{
&quot;ylUnit&quot;: &quot;胡萝卜&quot;,
&quot;ylName&quot;: &quot;泰顺腊兔子&quot;
},
......
{
&quot;ylUnit&quot;: &quot;香菜&quot;,
&quot;ylName&quot;: &quot;蒜&quot;
}
]
}
]
}
}</code></pre>
<h4>3.6 失败返回样例</h4>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;菜谱的分类不能为空&quot;,
&quot;code&quot;: 400,
&quot;charge&quot;: false
}</code></pre>