分析API/栄養と食材分析
分析APIシステムは、フロントエンドとして「実行部(=API)」と「設定部(ルール指定)」で構成されています。
設定部についても json で規定される設定ルールをサーバーに送信するためAPIの概念がありますが、現状、エディターを含む SaaS 形式で提供しているため、ドキュメントは一般公開しておりません。
実行部の定義となる本ドキュメントでは、食事内容の指定方法を中心にしていますが、実行部が利用する分析エンジンでは検索APIの機能を内部で活用しているため、分析する栄養素や食材等を検索APIがレスポンスする必要があり、契約としても実装としても検索と分析はペアとなっているため、検索API分類の中に本APIを定義しています。
※つまり、本分析APIを利用される場合には、分析内容に見合った検索APIのご契約が必要です。
名称 | 栄養分析エンジン |
---|---|
APIバージョン | 2 |
認証タイプ | なし |
URL | https://(APIサーバー名)/services/api2/(アクセスコード)/nutranalyze/json/ |
Method | POST |
予め設定されたルールに従って食事データを分析する
jsonで記述した食事データをリクエストボディに設定し、URLに対してPOSTを行う。
食事データはjsonで記述する。
アップロードする食事データを記述する。
名 | 型 | 内容 |
ver | 数値 | 1(定数) 必須 |
type | 文字列 | nutranalyze(定数) 必須 |
analyzer | 文字列 | 栄養分析ルールID 必須 |
authkey | 文字列 | 栄養分析ルール認証キー 設定時必須 |
callbackdata | オブジェクト | コールバックオブジェクト 返却データに付与される 任意 |
profile | プロフィールオブジェクト | 分析対象の年齢性別等 任意 |
meals | 食事群オブジェクト | 分析する食事データ 必須 |
分析対象の人物属性を記述する。
名 | 型 | 内容 |
type | 文字列 | profile(定数) 必須 |
data | オブジェクト | データ 必須 |
data.name | 文字列 | 名前 任意 |
data.age | 数値 | 年齢 任意 |
data.sex | 文字列 | 性別 男性=male 女性=female 任意 |
data.height | 数値 | 身長(cm) 任意 |
data.weight | 数値 | 体重(kg) 任意 |
data.intensity | 数値 | 生活活動強度 任意 |
食事の集合を記述する。
名 | 型 | 内容 |
type | 文字列 | meals(定数) 必須 |
data | 食事オブジェクトの配列 | データ 必須 |
食事を記述する。
名 | 型 | 内容 |
type | 文字列 | meal(定数) 必須 |
data | 食品オブジェクトの配列 | データ 必須 |
食品を記述する。
名 | 型 | 内容 |
type | 文字列 | food(定数) 必須 |
date | 日時文字列 | 食事日時 任意 |
daypart | 文字列 | 食事時間帯 朝=(morning,00) 昼=(daytime,01) 夜=(night,03) その他=(other,04-07) 任意 |
data | オブジェクト | データ 必須 |
data.objectid | 文字列 | 食品のオブジェクトID 必須 |
data.quantity | 数値 | 食品の人前 必須 |
{ { "ver": 1, "type": "nutranalyze", "analyzer": "testrule1", "authkey": "password0", "callbackdata": { "user-defined-data1": "ABCDEFG", }, "profile": { "type": "profile", "data": { "name": "ユーザーの名前", "age": 25, "sex": "male", "height": 165, "weight": 60, "intensity": 1.3 } }, "meals": { "type": "meals", "data": [ { "type": "meal", "date": "2020/08/21 11:00:00", "daypart": "00", "data": [ { "type": "food", "data": { "objectid": "FO7de5bd6a4cec65c8213902c7", "quantity": 1.5 } }, { "type": "food", "data": { "objectid": "FO3cc1bb8745d44ff97ba8c6fe", "quantity": 1 } } ] } ] } } }
レスポンスコードは200を返し、レスポンスはjson形式である。
名 | 型 | 内容 |
analyzer | 栄養分析ルール情報オブジェクト | 分析に使用した栄養分析ルールの情報 |
callbackdata | オブジェクト | コールバックオブジェクト |
analyze | 分析結果オブジェクト | 分析の結果 |
result | boolean | 実行結果 |
名 | 型 | 内容 |
analyzer | 文字列 | 栄養分析ルールID |
name | 文字列 | 栄養分析ルールの名前 |
comment | 文字列 | 栄養分析ルールのコメント |
名 | 型 | 内容 |
steps | 数値 | 実行したステップ数 |
text | 文字列 | 分析エンジンが生成した文字列 |
{ { "analyzer": { "analyzerid": "testrule1", "name": "テストデータその2", "comment": "開発用" }, "callbackdata": { "user-defined-data1": "ABCDEFG", }, "analyze": { "steps": 12, "text": "ユーザーの名前 さんの基礎代謝は1543kcalです。生活活動強度は1.3、1日の所要カロリー量は2006kcalです。\n T/U平均スコアは 3.5 でした。\nこの食事の糖質の総摂取量は378gでした。\nこの食事の中で最も糖質摂取量の多い食品は「チャーシューメン」において105.6gでした。\n糖質を最も多く含む素材は「ごはん」に121.3gでした。\n豚肉類を50g以上食べています。食べた量は142.3gでした。\nキャベツを最も多く含む食品は「餃子(5個)」で31.5gでした。\n食事のNutriscoreの加重平均値は3.5でした。\n野菜、海藻、豆製品やコンニャク類など、食物繊維なども意識して積極的に取りましょう。\n今週の津川スコア1の摂取量の平均値は 72.4gです。\n先週の津川スコア1の摂取量の平均値は 199.5gです。\nこの食事の添加糖は7.1gです。\nこの食事の良い脂肪は29354.2mgです。\n" }, "result": true } }
このドキュメントのバージョン情報
Version | 1 |
Revision | 1 |
Editor | west |