#author("2024-06-28T15:29:09+09:00","","") #author("2024-06-28T15:31:04+09:00","","") [[FrontPage]] &size(24){分析API/栄養・食材分析}; &size(24){分析API/栄養と食材分析}; 分析APIシステムは、フロントエンドとして「実行部(=API)」と「設定部(ルール指定)」で構成されています。&br; 設定部についても json で規定される設定ルールをサーバーに送信するためAPIの概念がありますが、現状、エディターを含む SaaS 形式で提供しているため、ドキュメントは一般公開しておりません。&br; 実行部の定義となる本ドキュメントでは、食事内容の指定方法を中心にしていますが、実行部が利用する分析エンジンでは検索APIの機能を内部で活用しているため、分析する栄養素や食材等を検索APIがレスポンスする必要があり、契約としても実装としても検索と分析はペアとなっているため、検索API分類の中に本APIを定義しています。&br; ※つまり、本分析APIを利用される場合には、分析内容に見合った検索APIのご契約が必要です。&br; * API情報 [#q6190828] |~名称|栄養分析エンジン| |~APIバージョン|2| |~認証タイプ|なし| |~URL|https://(APIサーバー名)/services/api2/(アクセスコード)/nutranalyze/json/| |~Method|POST| * 概要 [#jfe13a2c] 予め設定されたルールに従って食事データを分析する * アクセス手順 [#ya59d11f] jsonで記述した食事データをリクエストボディに設定し、URLに対してPOSTを行う。 ** 食事データフォーマット [#m68f431e] 食事データはjsonで記述する。 *** 食事データ [#gd7bf280] アップロードする食事データを記述する。 |名|型|内容|h |ver|数値|1(定数) 必須| |type|文字列|nutranalyze(定数) 必須| |analyzer|文字列|栄養分析ルールID 必須| |authkey|文字列|栄養分析ルール認証キー 設定時必須| |callbackdata|オブジェクト|コールバックオブジェクト 返却データに付与される 任意| |profile|プロフィールオブジェクト|分析対象の年齢性別等 任意| |meals|食事群オブジェクト|分析する食事データ 必須| *** プロフィールオブジェクト [#k7ae89cb] 分析対象の人物属性を記述する。 |名|型|内容|h |type|文字列|profile(定数) 必須| |data|オブジェクト|データ 必須| |data.name|文字列|名前 任意| |data.age|数値|年齢 任意| |data.sex|文字列|性別 男性=male 女性=female 任意| |data.height|数値|身長(cm) 任意| |data.weight|数値|体重(kg) 任意| |data.intensity|数値|生活活動強度 任意| *** 食事群オブジェクト [#oa0d7c49] 食事の集合を記述する。 |名|型|内容|h |type|文字列|meals(定数) 必須| |data|食事オブジェクトの配列|データ 必須| *** 食事オブジェクト [#p6b196e5] 食事を記述する。 |名|型|内容|h |type|文字列|meal(定数) 必須| |data|食品オブジェクトの配列|データ 必須| *** 食品オブジェクト [#oc23d8ea] 食品を記述する。 |名|型|内容|h |type|文字列|food(定数) 必須| |date|日時文字列|食事日時 任意| |daypart|文字列|食事時間帯 朝=(morning,00) 昼=(daytime,01) 夜=(night,03) その他=(other,04-07) 任意| |data|オブジェクト|データ 必須| |data.objectid|文字列|食品のオブジェクトID 必須| |data.quantity|数値|食品の人前 必須| ** 食事データ例 [#na3c7f82] #html{{ <pre class="brush:xml;"> { { "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 } } ] } ] } } }</pre> }} ** レスポンス [#b7e56e30] レスポンスコードは200を返し、レスポンスはjson形式である。 |名|型|内容|h |analyzer|栄養分析ルール情報オブジェクト|分析に使用した栄養分析ルールの情報| |callbackdata|オブジェクト|コールバックオブジェクト| |analyze|分析結果オブジェクト|分析の結果| |result|boolean|実行結果| *** 栄養分析ルール情報オブジェクト [#o8461568] |名|型|内容|h |analyzer|文字列|栄養分析ルールID| |name|文字列|栄養分析ルールの名前| |comment|文字列|栄養分析ルールのコメント| *** 分析結果オブジェクト [#y2fb56bf] |名|型|内容|h |steps|数値|実行したステップ数| |text|文字列|分析エンジンが生成した文字列| *** レスポンス例 [#i994a280] #html{{ <pre class="brush:xml;"> { { "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 } }</pre> }} * バージョン [#o0becc47] このドキュメントのバージョン情報 |Version|1| |Revision|1| |Editor|west|