#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/食品情報提供操作]] を使用して、登録済みリクエストのコールバック受信が正常に処理されることを確認する。

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS