- 追加された行はこの色です。
- 削除された行はこの色です。
- 分析API/栄養分析 は削除されています。
#author("2020-08-22T19:40:21+09:00","","")
[[FrontPage]]
#author("2023-08-08T13:57:36+09:00","","")
&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|