菜谱大全
万维易源 官方文档
本菜谱的信息来源于网络,所以本信息仅用于交流学习.此接口收录的有十万多条最新的菜谱.
基本说明:
接口地址:http://route.showapi.com/1164-1
返回格式:json
请求方式:get/post
请求示例:0
请求参数说明:
名称 类型 必填 说明
type String 必填 菜谱的分类
id String 选填 菜谱标识
cpName String 选填 菜谱名称
maxResults String 选填 每页返回的最大结果集,取值在1-50之间
page String 选填 请求页数
返回参数说明:
名称 类型 说明
cpName String 菜谱名称
id String 菜谱标识
largeImg String 大图url
mallImg String 小图url
ti String 提示信息
type_v1 String 一级分类
type_v2 String 二级分类
type_v3 String 三级分类
type String 分类信息
yl String 原料/配方
te String 操作步骤
flag String 业务是否调用成功
ret_code String 接口调用是否成功
JSON返回示例:
{
	"showapi_res_code": 0,
	"showapi_res_error": "",
	"showapi_res_body": {
		"datas": [
			{
				"des": "生活里真的是创意无限,虽然都是一样的柴米油盐,有些家吃的欢,有些家吃的愁。所以要吃的好,不在于你买了什么,而是你即使用简单的材料也能做出让家人有惊喜的美食。今天这道美食就是这样,简单的食材,只用到了一个鸡蛋和一张海苔就能让你尝到从没吃过的味道,不用加一点调料,不用盐,不用味精!",
				"smallImg": "http://app2.showapi.com/img/caipuImg3/201611110205/1478801151775155_smallImg.jpg",
				"steps": [
					{
						"content": "准备好一张海苔",
						"imgUrl": "http://app2.showapi.com/img/caipuImg3/201611110205/1478801150911864_1.jpg",
						"orderNum": 1
					}
				],
				"type": "热门专题 蛋奶豆制品 菜式 蛋类 创意菜 鸡蛋",
				"tip": "1. 海苔四周抹水是因为放入鸡蛋后可以把海苔包拢,鸡蛋不会流出; 2. 如果有的海苔太薄,建议用两张比较安全; 3. 煎之前油要烧热再放入才会炸的快,大约炸一分钟左右就可以了。 4. 用平底锅也可以少放油,就是把平底锅倾斜一下油就集中到一边了。",
				"id": "5819e55df2954c15f83d3bbd",
				"type_v3": "创意菜 鸡蛋",
				"type_v2": "菜式 蛋类",
				"type_v1": "热门专题 蛋奶豆制品",
				"_id": {
					"timestamp": 1478092125,
					"time": 1478092125000,
					"machineIdentifier": 15897932,
					"processIdentifier": 5624,
					"counter": 4012989,
					"timeSecond": 1478092125,
					"date": 1478092125000
				},
				"cpName": "爆浆鸡蛋",
				"yl": [
					{
						"ylName": "鸡蛋",
						"ylUnit": ""
					},
					{
						"ylName": "海苔",
						"ylUnit": ""
					}
				],
				"largeImg": "http://app2.showapi.com/img/caipuImg3/201611110205/1478801151716465_largeImg.jpg"
			}
		],
		"ret_code": "0",
		"flag": true,
		"remark": "查询成功!",
		"page": 1,
		"allNum": 1,
		"msg": "查询成功!",
		"allPage": 1
	}
}
服务级错误码参照
错误码 说明
-1 系统调用错误
-2 可调用次数或金额为0
-3 读取超时
-4 服务端返回数据解析错误
-5 后端服务器DNS解析错误
-6 服务不存在或未上线
-1000 系统维护
-1002 showapi_appid字段必传
-1003 showapi_sign字段必传
-1004 签名sign验证有误
-1005 showapi_timestamp无效
-1006 app无权限调用接口
-1007 没有订购套餐
-1008 服务商关闭对您的调用权限
-1009 调用频率受限
-1010 找不到您的应用
-1011 子授权app_child_id无效
-1012 子授权已过期或失效
-1013 子授权ip受限
完整教学代码示例
public static void main(String path[]) throws Exception {
URL u = new URL("http://route.showapi.com/1164-1?showapi_appid%3Dmyappid%26type%3D%E8%9B%8B%E7%B1%BB%26id%3D5c3dfddfe9b6cc65afc9427e%26cpName%3D%E9%BB%84%E9%87%91%E9%B8%A1%E8%9B%8B%E7%9B%85%26maxResults%3D20%26page%3D1%26showapi_sign%3Dmysecret");
InputStream in = u.openStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
byte buf[] = new byte[1024];
int read = 0;
while ((read = in .read(buf)) > 0) {
out.write(buf, 0, read);
}
} finally {
if ( in != null) {
in .close();
}
}
byte b[] = out.toByteArray();
System.out.println(new String(b, "utf-8"));
}
<?php
/**
 * Created by PhpStorm.
 * User: FZS
 * Time: 2019/3/15 17:50
 */
//----------------------------------
// 易源 菜谱大全 调用类
//----------------------------------
class freeApi{
    private $apiId = false; //易源appid
    private $apiSecret = false; //易源secret
    private $apiUrl = 'http://route.showapi.com/1164-1';
    public function __construct($apiid,$secretkey){
        $this->apiId = $apiid;
        $this->apiSecret = $secretkey;
    }
    /**
     * url拼接
     * @return string
     */
    private function handleParam($paramArr,$showapi_secret){
        $paraStr = "";
        $signStr = "";
        ksort($paramArr);
        foreach ($paramArr as $key => $val) {
            if ($key != '' && $val != '') {
                $signStr .= $key.$val;
                $paraStr .= $key.'='.urlencode($val).'&';
            }
        }
        $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
        $sign = strtolower(md5($signStr));
        $paraStr .= 'showapi_sign='.$sign;//将md5后的值作为参数,便于服务器的效验
        return '?'.$paraStr;
    }
    /**
     * 将JSON内容转为数据,并返回
     * @param string $content [内容]
     * @return array
     */
    public function returnArray($content){
        return json_decode($content,true);
    }
    /**
     * 获取 菜谱大全 结果
     * @return array
     */
    public function getResult(){
        $paramArr = [
            'showapi_appid'=> $this->apiId,
            'type'=> "蛋类",
            'id'=> "5c3dfddfe9b6cc65afc9427e",
            'cpName'=> "黄金鸡蛋盅",
            'maxResults'=> "20",
            'page'=> "1"
        ];
        return $this->returnArray($this->freeApiCurl($this->apiUrl.$this->handleParam($paramArr,$this->apiSecret)));
    }
    /**
     * 请求接口返回内容
     * @param  string $url [请求的URL地址]
     * @param  string $params [请求的参数]
     * @param  int $ipost [是否采用POST形式]
     * @return  string
     */
    public function freeApiCurl($url,$params=false,$ispost=0){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
        curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        if( $ispost )
        {
            curl_setopt( $ch , CURLOPT_POST , true );
            curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
            curl_setopt( $ch , CURLOPT_URL , $url );
        }
        else
        {
            if($params){
                curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
            }else{
                curl_setopt( $ch , CURLOPT_URL , $url);
            }
        }
        $response = curl_exec( $ch );
        if ($response === FALSE) {
            return false;
        }
        curl_close( $ch );
        return $response;
    }
}
//推荐使用npm安装使用sdk: npm install --save showapi-sdk
'use strict';

var showapiSdk = require('showapi-sdk');

//设置你测试用的appId和secret,img
var appId='';
var secret='';
//开启debug
//showapiSdk.debug(true);
if(!(appId&&secret)){
  console.error('请先设置appId等测试参数,详见样例代码内注释!')
  return;
}
//全局默认设置
showapiSdk.setting({
  url:"http://route.showapi.com/1164-1",//你要调用的API对应接入点的地址,注意需要先订购了相关套餐才能调
  appId:appId,//你的应用id
  secret:secret,//你的密钥
  timeout:5000,//http超时设置
  options:{//默认请求参数,极少用到
    testParam:'test'
  }
})

var request=showapiSdk.request();
request.appendText('type','蛋类');
request.appendText('id','5c3dfddfe9b6cc65afc9427e');
request.appendText('cpName','黄金鸡蛋盅');
request.appendText('maxResults','20');
request.appendText('page','1');
request.post(function(data){
  console.info(data)
})
package main

import (
"showSdk/normalRequest"
"fmt"
)
res := normalRequest.ShowapiRequest("http://route.showapi.com/1164-1",my_appId,"my_appSecret")
res.AddTextPara("type","蛋类")
res.AddTextPara("id","5c3dfddfe9b6cc65afc9427e")
res.AddTextPara("cpName","黄金鸡蛋盅")
res.AddTextPara("maxResults","20")
res.AddTextPara("page","1")
//res.AddFilePara("img", "C:\\Users\\showa\\Desktop\\使用过的\\4.png")//文件上传时设置
fmt.Println(res.Post())
# python3.6.5
# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests
from ShowapiRequest import ShowapiRequest

r = ShowapiRequest("http://route.showapi.com/1164-1","my_appId","my_appSecret" )
r.addBodyPara("type", "蛋类")
r.addBodyPara("id", "5c3dfddfe9b6cc65afc9427e")
r.addBodyPara("cpName", "黄金鸡蛋盅")
r.addBodyPara("maxResults", "20")
r.addBodyPara("page", "1")
# r.addFilePara("img", r"C:\Users\showa\Desktop\使用过的\4.png") #文件上传时设置
res = r.post()
print(res.text) # 返回信息