成分 / Seibun

ポーション

成分表の栄養値は可食部 100g あたりです。成分 API は「卵 1 個」「おにぎり 1 個」 のような単位(ポーション)に対応し、任意量へスケールした栄養値を返します。

基準は可食部 100g

各食品は利用可能なポーションの一覧を持ちます。ポーションは可食部換算グラムgramsEdible)を保持します。たとえば鶏卵「M サイズ 1 個」= 51g 可食部、のように。

{
  "portions": [
    { "id": "1", "label": "1食(150g)", "gramsEdible": 150, "isDefault": true }
  ]
}

スケーリング

GET /v1/foods/{food_number}/nutrition に量を指定すると、サーバ側でスケールした 栄養値が返ります。指定方法は 2 通りです。

# グラム指定(150g にスケール)
curl "https://api.example.com/v1/foods/01001/nutrition?grams=150" \
  -H "X-API-Key: fnk_xxxx"
 
# ポーション × 個数(ポーション id を 2 個ぶん)
curl "https://api.example.com/v1/foods/01001/nutrition?portion=1&count=2" \
  -H "X-API-Key: fnk_xxxx"

スケール係数は次のとおりです。

  • grams= のとき … 係数 = grams / 100
  • portion=&count= のとき … 係数 = gramsEdible × count / 100

measured / estimated の栄養値はこの係数で線形にスケールし、trace / estimatedTrace / notMeasured種別を保ったまま素通しされます (微量や未測定を量で water down しないため)。

複数の食品を合成するレシピ(オムライス等)は対象外です。成分表の「調理済み流通食品類」に 既製品として載るものは、その食品のポーションで対応します。