#author("2023-09-14T06:04:27+09:00","","") #author("2023-09-21T20:58:19+09:00","","") [[FrontPage]] &size(24){リクエストAPI/食品情報提供/Getting started}; * ステップ1. 事前準備 [#i66c3e48] APIにアクセスするために、以下の情報の振り出しを担当から受ける。 - サーバー名 - アクセスコード(accode) - アプリケーションキー(appkey) - アプリケーションシークレット(appsec) * ステップ2. 食品リクエストの収集経路を確立する [#h81df1bd] 食品名(商品名)は必須である。その他の項目は任意である。 参考画像を活用して頂くと利便性が良いかと思われる。 - 食品名・商品名(name) - メーカー名(maker) - 備考(optinfo) - 参考画像 ※本ステップは貴社アプリ内での設計と実装になり、本APIとは直接関係はない。 * ステップ3. 食品情報の提供を試験する [#g52c64a6] [[リクエストAPI/食品情報提供]] に従い、リクエストjsonを作成し、APIサーバーに送信するプロセスを開発する。~ リクエスト本体のパラメータ dryrun を true に設定し、要求及び応答が正常に処理されることを確認する。~ パラメータ dryrun を true に設定した場合、送信したデータは実際には登録されない。 ** サンプルを参照する [#b831ab5f] *** javascriptとhtmlフォームを使用したリクエスト生成サンプル [#keb4eedd] フォーム https://(サーバー名)/api/h/eapirequest.php htmlフォームとjavascript/jQueryを使用して、リクエスト生成を試行できる。送信するjson及び応答のjsonを確認できる。 *** PHPを使用したリクエスト生成サンプル [#r0c1be5b] [[サンプルソース>リクエストAPI/食品情報提供#ne721aef]] ** クライアントを開発する [#j3184e5f] *** 認証情報を準備する [#u5cca338] APIの認証には、以下が必要である。 - アプリケーションキー - アプリケーションシークレット - ナンス アクセス毎に、ナンスとしてランダムな16バイト以上の半角英数文字列を生成する。~ アプリケーションシークレットの末尾にナンスを追加して、文字列全体のSHA256ハッシュ値を計算する。~ アプリケーションキー、ナンス、ハッシュ値を、それぞれのパラメータとしてセットする。 *** 登録するリクエストを準備する [#h75b8e7d] リクエストの内容を、食品リクエストオブジェクトとして作成する。 食品名・商品名は必須であり、その他の項目は任意である。~ 参考情報として画像も添付可能である。受付可能なフォーマットはjpeg、1つのリクエストオブジェクトに対して2枚まで、1枚あたり2Mバイトまでで用意する。 リクエストオブジェクトは、複数個を同時に登録可能である。1つだけを登録する時も、objects パラメータが長さ1の配列となるよう留意すること。 *** 試験用の設定 [#r2507271] パラメータ dryrun をtrueに設定する。~ これにより、APIはリクエストを受け付けて処理するが、実際にIMD側には通知も登録もされないので 開発・検証時には本パラメータを活用すること。 もし開発前など事前に簡易的な導通検証をなされたい場合は、 事前にIMD側担当者に連絡の上で、 「食品名」に「テストのため削除してOK」、「備考」に「This is a test registration, so please delete it.」などと記載して、 パラメータ dryrun を false にして送信されると、IMD側で手動で確認することができますので、お問合せ下さい。 * ステップ4. 運用する [#a5fb3270] パラメータ dryrun を除去(または false に設定)して、リクエストが実際に登録されるようにする。 IMD側では、本番運用時にはリクエストされた情報が栄養士オペレーター等に通知され、 順次対応を実施し、新規作成後には監査を通じ、 平日営業時間内であれば翌日には検索APIの新商品等には反映される仕組みとなっている。 (最初に新商品検索対象として検索APIでは扱いつつ、随時通常検索に取り込む) * (任意)ステップ5. リクエスト処理の結果を受け取るプロセスを試験する [#n24566e9] 必要に応じて、リクエストの処理結果を受け取る(コールバック)ことが出来る。 処理の受け取りは、https で受け取るか、mail で受け取ることができる。~ https で受け取る場合は、webサーバーを準備し、結果を受信するURLを決定する。 mail で受け取る場合は、mailサーバーを準備し、結果を受信するメールアドレスを決定する。~ [[リクエストAPI/食品情報提供操作]] を使用して、登録済みリクエストのコールバック受信が正常に処理されることを確認する。