FrontPage

データAPI/構成食材による検索

※本API機能は追加オプションご契約の方のみがご利用になれるものです。

API情報

名称構成食材による検索
APIバージョン2
認証タイプなし
URLhttps://(APIサーバー名)/services/api2/(アクセスコード)/search/byelement/json/素材objectidまたは基本素材検索語/
https://(APIサーバー名)/services/api2/(アクセスコード)/search/byelement/json/素材objectidまたは基本素材検索語/開始位置/表示個数/
MethodGET
データ更新頻度目安1週間

概要

素材に指定した食品を含む食品を検索し、カスタムフィルター及びカスタムソートを実施する。文字列の比較対象は、名前、よみ、三階層カテゴリー名となる。

入力するobjectidまたは語

入力は、素材となる食品のobjectid、またはデータAPI/基本素材リスト文字列検索に適用される文字列、のいずれかを取る。
'FO'で始まる文字列は、素材objectidとして解釈される。それ以外の文字列は、データAPI/基本素材リスト文字列検索を実行し、その結果を素材objectidとして採用する。
objectid及び文字列は単一のみとし、文字列が複数合致する場合は、データAPI/基本素材リスト文字列検索での検索結果順の素材で検索し、当該順に最大500件まで出力する。

カスタムフィルター

フィルター処理は、文言除外フィルター、文言限定フィルター、構成要素除外フィルター、構成要素限定フィルター、栄養素値フィルターの各処理が実施される。

  • 文言フィルターの対象となるのは、名前、読み、カテゴリーの各文字列である。(複数可)
  • 文言除外フィルターは、名前、読み、カテゴリーに指定文字列を全てまたはいずれかを含むものは結果から除外される。
  • 文言限定フィルターは、名前、読み、カテゴリーに指定文字列を全てまたはいずれかを含むもののみが結果に含まれる。
  • 構成要素除外フィルターは、指定されたobjectidを構成要素に含むものは結果から除外される。
  • 構成要素限定フィルターは、指定されたobjectidを構成要素に含むもののみが結果に含まれる。
  • 栄養素値フィルターは範囲指定の場合、指定された栄養素について、指定された範囲を外れたものは結果から除外される。(全栄養素対象に、複数栄養素に対応)
  • 栄養素値フィルターは存在指定の場合(shopname項目の指定時)、指定された栄養素または項目について、存在しているものまたは存在していないものは結果から除外される。
  • メーカー名付きフラグは、商品又は一般料理の区分に対応し、yesの場合は商品、noの場合は一般料理のみを結果に返す
  • 検索方向は、素材objectidを素材として含む量が多い方または少ない方から結果を抽出する。カスタムソートを指定しない場合、出現順は素材objectidの順となる。

カスタムソート

指定された栄養素について、昇順または降順によって、結果をソートする。

注意点

フィルター条件により適合した食品数が5000件に達した時点で候補の抽出は打ち切られ、5000件までの候補の中でカスタムソートが実行される。このため、フィルター条件の結果数が多くなる場合、ソート結果の1位及び末尾が、全食品中での最大値又は最小値とならない場合がある。

アクセス手順

クエリー

https://(APIサーバー名)/services/api2/(アクセスコード)/search/byelement/json/(素材objectidまたは基本素材検索語)/?(カスタムフィルター条件)
素材objectidまたは基本素材検索語で検索した結果にカスタムフィルター条件を適用して返却する。

https://(APIサーバー名)/services/api2/(アクセスコード)/search/byelement/json/(素材objectidまたは基本素材検索語)/(開始位置)/(表示個数)/?(カスタムフィルター条件)
素材objectidまたは基本素材検索語で検索した結果にカスタムフィルター条件を適用し、0から始まるインデックスの(開始位置)番目から、(表示個数)個のアイテムを返却する。

検索文字列がマルチバイトの場合は、文字コードをUTF-8としURLエンコードを施したものとする。

クエリー (GET) の最大値は 8192 Byte(8KB) とする。

カスタムフィルター条件

カスタムフィルターは、クエリー文字列としてクエリー末尾に付加する。 文字列パラメータがマルチバイトの場合は、文字コードをUTF-8としURLエンコードを施したものとする。 カスタムフィルター条件は省略可能であり、省略されたものは実施されない。

パラメータ名内容形式省略可否
exword文言除外フィルター指定文字列
複数指定時は半角スペースで区切る
文字列省略可・未指定時非実施
excond文言除外フィルター除外条件OR条件=or AND条件=andexword指定時必須
inword文言限定フィルター指定文字列
複数指定時は半角スペースで区切る
文字列省略可・未指定時非実施
incond文言限定フィルター除外条件OR条件=or AND条件=andinword指定時必須
exelement構成要素除外フィルター指定objectid
複数指定時は半角スペースで区切る
文字列省略可・未指定時非実施
execond構成要素除外フィルター除外条件OR条件=or AND条件=andexelement指定時必須
inelement構成要素限定フィルター指定objectid
複数指定時は半角スペースで区切る
文字列省略可・未指定時非実施
inecond構成要素限定フィルター除外条件OR条件=or AND条件=andexelement指定時必須
exstuff_idN栄養素値フィルター指定栄養素ID
Nは1から始まる添字。Nは1ずつ増加しなければならない。
栄養素コード
※shopnameを例外的対象としexstuff_existNによる判定に対応
省略可・未指定時非実施
exstuff_upperN栄養素値フィルター範囲最大値
Nはexstuff_idに対応する添字。
数値exstuff_id指定時、exstuff_upper/exstuff_lower/exstuff_existのいずれか必須
exstuff_lowerN栄養素値フィルター範囲最小値
Nはexstuff_idに対応する添字。
数値exstuff_id指定時、exstuff_upper/exstuff_lower/exstuff_existのいずれか必須
exstuff_existN栄養素値フィルター存在指定
Nはexstuff_idに対応する添字。
存在時除外=exclude 非存在時除外=includeexstuff_id指定時、exstuff_upper/exstuff_lower/exstuff_existのいずれか必須
sort_idカスタムソート指定栄養素ID栄養素コード省略可・未指定時非実施
sort_dirカスタムソート順序昇順=asc 降順=descsort_id指定時必須
flagsnメーカー名付きフラグメーカー名付きのみ=yes メーカー名なしのみ=no 両方=both省略可・省略時both
searchorder検索方向多い方から検索=desc 少ない方から検索=asc省略可・省略時desc
keyelement構成食材包含フィルター上位3件に 素材objectidを含むものを優先=prio 素材objectidを含むものに限定=only省略可・未指定時非実施
prioritizer構成食材に指定objectidを含むものを優先objectidkeyelementにprio指定時のみ有効・省略可・省略時は素材objectid
filtersnメーカー名フィルター
shopnameフィールドに対して指定された文字列でフィルターする
文字列任意
filtersn_matchメーカー名フィルターマッチ方式
完全一致=full 部分一致=part省略時part
filtercatNカテゴリー階層マッチ
caregorytreeフィールド内のいずれかに対して指定された文字列でフィルターする
Nは1~3を半角数値で指定。完全一致で判定される。
文字列任意

クエリー例

https://(APIサーバー名)/services/api2/(アクセスコード)/search/byelement/json/FO9ee10c4c46d307f56af1f494/0/100/?inword=ジョナサン&incond=and&exstuff_id1=carbo&exstuff_upper1=100&exstuff_lower1=20&sort_id=stuff_e&sort_dir=asc

レスポンス

レスポンスコードは200を返し、レスポンスはjson形式である。レスポンスされる食品数の最大値は 500 である。 検索結果が存在しない場合は長さ0の配列が返される。クエリー書式誤り等の場合はレスポンスコード404が返される。 フィールド indexedby は、キーとなった構成食材のobjectidを表す。

{
 "foods": [
   {
     "name": 食品名,
     "yomi": 食品名よみ,
     "objectid": オブジェクトID,
     "unit": 分量,
     "stuff_e": カロリー,
     "indexedby": オブジェクトID,
     :
     "categorytree": [
       第1階層カテゴリー名,
       第2階層カテゴリー名,
       第3階層カテゴリー名,
     ],
     "shopname": メーカー名,
     "elements": [
       {
         "elementid": 構成食材オブジェクトID,
         "elementunit": 構成食材分量
       },
       :
     ]
   },
   {
     (食品データ)
   },
   :
 ],
}

レスポンス例

{
  "foods": [
    {
      "name": "スープモーニング(ジョナサン)",
      "yomi": "すーぷもーにんぐじょなさん",
      "objectid": "FOa25029224c6350a437706fe2",
      "unit": 222,
      "stuff_e": 415.2,
      "stuff_p": 11.5,
      "stuff_f": 14.8,
      "stuff_c": 59.4,
      "stuff_fiber": 3.9,
      "carbo": 55.5,
      "categorytree": [
        "洋食",
        "定食\/セット",
        "その他セットメニュー"
      ],
      "shopname": "ジョナサン",
      "elements": [
        {
          "elementid": "FO2653a0de46d307c50459d96d",
          "elementunit": 60
        },
        {
          "elementid": "FOf426ae2846d307c61283e19d",
          "elementunit": 20
        },
        {
          "elementid": "FOc889202846d3086f26e66bb5",
          "elementunit": 6
        }
      ]
    },
    {
      "name": "チキンと野菜のトマト煮込みセット キャロットパンとハーブゼリーつき(ジョナサン)",
      "yomi": "ちきんとやさいのとまとにこみせっと きゃろっとぱんとはーぶぜりーつき じょなさん",
:
    }
  ],
}

考慮事項

本APIの返却するデータは、クライアント側で適切にキャッシュ等を行い、アクセス量を低減させることが望ましい。

バージョン

このドキュメントのバージョン情報

Version1
Revision1
Editorwest

トップ   リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-12-02 (水) 14:33:19 (86d)