利用料金
1 コイン/回
クイックスタート
統一レスポンス形式のまま、バックエンドから直接呼び出せます。
https://openapi.toolkk.com/v1/cookbook-listcURL 例
curl --request POST \
--url 'https://openapi.toolkk.com/v1/cookbook-list' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",\n "pageNo": "请求页数 默认第1页",\n "pageSize": "每页返回的最大结果集,默认20",\n "id": "菜谱标识 菜谱列表中id,可以用id查询详细",\n "name": "菜品名称"\n}'Python 例
import os
import requests
url = "https://openapi.toolkk.com/v1/cookbook-list"
payload = {
"type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",
"pageNo": "请求页数 默认第1页",
"pageSize": "每页返回的最大结果集,默认20",
"id": "菜谱标识 菜谱列表中id,可以用id查询详细",
"name": "菜品名称"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go 例
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/cookbook-list"
payload := []byte("{\n \"type\": \"菜谱的分类(查询时请使用分类中的一级或二级分类)\",\n \"pageNo\": \"请求页数 默认第1页\",\n \"pageSize\": \"每页返回的最大结果集,默认20\",\n \"id\": \"菜谱标识 菜谱列表中id,可以用id查询详细\",\n \"name\": \"菜品名称\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java 例
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"type\": \"菜谱的分类(查询时请使用分类中的一级或二级分类)\",\n \"pageNo\": \"请求页数 默认第1页\",\n \"pageSize\": \"每页返回的最大结果集,默认20\",\n \"id\": \"菜谱标识 菜谱列表中id,可以用id查询详细\",\n \"name\": \"菜品名称\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/cookbook-list"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP 例
<?php
$endpoint = 'https://openapi.toolkk.com/v1/cookbook-list';
$payload = "{\n \"type\": \"菜谱的分类(查询时请使用分类中的一级或二级分类)\",\n \"pageNo\": \"请求页数 默认第1页\",\n \"pageSize\": \"每页返回的最大结果集,默认20\",\n \"id\": \"菜谱标识 菜谱列表中id,可以用id查询详细\",\n \"name\": \"菜品名称\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;レスポンス例
{
"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": "蒜"
}
]
}
]
}
}例はレスポンスの構造を示しています。実際の結果はAPIの応答によって異なります。
- 認証方式
- リクエストヘッダーに X-API-Key を設定
- レート制限
- 毎分 60 回
- タイムアウト
- 5000 ms
サーバー側から呼び出す際は、X-API-Key ヘッダーに API Key を設定します。
HTTP ステータスと業務フィールドの両方で成功判定するのがおすすめです。
高頻度利用ではレート制限と再試行戦略を併用してください。
リクエスト項目
サーバーからリクエストを送信し、X-API-Keyヘッダーにキーを設定してください。
リクエスト項目
APIスキーマに基づく項目です。説明や例がない場合は未指定と表示します。
| パス | 型 | 必須 | 説明 | サンプル値 |
|---|---|---|---|---|
| type | string | はい | 菜谱的分类(查询时请使用分类中的一级或二级分类) | 未指定 |
| pageNo | string | いいえ | 请求页数 默认第1页 | 未指定 |
| pageSize | string | いいえ | 每页返回的最大结果集,默认20 | 未指定 |
| id | string | いいえ | 菜谱标识 菜谱列表中id,可以用id查询详细 | 未指定 |
| name | string | いいえ | 菜品名称 | 未指定 |
リクエスト例
{
"type": "菜谱的分类(查询时请使用分类中的一级或二级分类)",
"pageNo": "请求页数 默认第1页",
"pageSize": "每页返回的最大结果集,默认20",
"id": "菜谱标识 菜谱列表中id,可以用id查询详细",
"name": "菜品名称"
}- 認証方式
- リクエストヘッダーに X-API-Key を設定
- レート制限
- 毎分 60 回
- タイムアウト
- 5000 ms
レスポンス項目
例はレスポンスの構造を示しています。実際の結果はAPIの応答によって異なります。
レスポンス項目
APIスキーマに基づく項目です。説明や例がない場合は未指定と表示します。
| パス | 型 | 必須 | 説明 | サンプル値 |
|---|---|---|---|---|
| code | number | いいえ | 未指定 | 200 |
| msg | string | いいえ | 未指定 | 成功 |
| taskNo | string | いいえ | 未指定 | 025008804237815320489132 |
| data | object | いいえ | 未指定 | 未指定 |
| data.totalPage | number | いいえ | 总页数 | 61 |
| data.pageNo | number | いいえ | 当前页 | 1 |
| data.pageSize | number | いいえ | 每页返回最大记录数 | 20 |
| data.totalCount | number | いいえ | 总记录 | 1214 |
| data.items | array | いいえ | 未指定 | [{"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":"蒜"}]}] |
| data.items[] | object | 未指定 | 未指定 | 未指定 |
レスポンス例
{
"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": "蒜"
}
]
}
]
}
}APIの概要
機能、利用シーン、制約、よくある質問。
インターフェースの紹介
このインターフェイスは、構造化されたレシピ データ クエリ サービスを提供します。開発者は、料理のカテゴリ (第 1 レベルから第 3 レベルのカテゴリをサポート)、料理名、または一意の ID を指定して検索できます。このインターフェイスは、料理名、分類レベル、サムネイル、必要な材料リスト、ステップバイステップの調理ガイドを含む完全なデータ構造を返します。詳細なレシピ情報を表示する必要があるビジネスシーンに適しています。
該当するシナリオ
- グルメ APP/Web サイト: サイトのレシピ ライブラリを充実させ、標準化された料理チュートリアルを提供します。
- スマート ハードウェア統合: スマート キッチン家電や調理ロボットに標準化された指示ステップ データを提供します。
- コンテンツ集約プラットフォーム: 垂直方向の食品コンテンツ セクションを迅速に構築し、肉や野菜などのディメンションによるフィルタリングをサポートします。
リクエストと返品の手順
- リクエスト方法: POST
- コアパラメータ:
type(必須): レシピ分類。第 1 レベルまたは第 2 レベルの分類タグを使用することをお勧めします。name(オプション): 料理名のあいまい検索。id(オプション): 単一アイテムの詳細を取得するには、レシピ ID を指定します。