このマニュアルでは、Fetchee Product APIを使用して、lamodaオンラインストアの例を使用して、URLで製品データを取得する方法について説明します。
前の記事を読んでいない人にとって、Product APIは、あらゆるストアから製品データを受信する必要があるが、独自の解析システムの作成に時間を費やしたくない、またはオープンソースライブラリには重大な制限があり、サポートに多くの時間が必要です。 eコマースデータを解析するための自動構成不要のAPIにより、アプリケーションの基本機能の開発に集中できます。 さらに、それを試すことは非常に簡単です。 カットの下の詳細。
まず、APIアクセスキーが必要です。 https://fetch.ee/ru/developers/にリクエストを残します 。 私たちはすべての来訪者へのアクセスを提供し、通常24時間以内に申請に対応します。
1. URLによる製品の解析要求の送信
APIは、 https : //fetch.ee/api/v1/product URLでapplication / json形式のPOSTリクエストのみを受け入れることに注意してください。
{ "url":"<URL >", "api_key":"<API >", "callback_url":"<URL >" }
http://www.lamoda.ru/p/ug174awohj47/shoes-uggaustralia-uggi/にある製品のリクエスト例は次のようになります(数日間続くデモAPIキーを追加しました)。
curl -X POST -H "Content-type: application/json" -d "{\"url\": \"http://www.lamoda.ru/p/ug174awohj47/shoes-uggaustralia-uggi/\", \"api_key\": \"0e2bc30838d8bbbbbec787667c4ff34b\", \"callback_url\": \"http://requestb.in/onpdf2on\"}" https://fetch.ee/api/v1/product
すべてのパラメーターは必須です。パラメーターのいずれかが存在しない場合、不正なAPIキーの場合のように、サーバーは403エラーを返します。
重要:この例では、一時的なcallback_urlを指定しています。 数時間後に機能しなくなり、 http://requestb.inで取得できるURLに置き換えます。
Product APIはリクエストを非同期で処理します。応答時間は数秒から数十分まで変化します。 これは、特定の地理的地域のシステムの負荷によるものです。 APIは、解析の最後に指定したURL(callback_url)にデータを送信します。
最大待機時間は30分です。その後、いずれの場合も、指定されたURLで製品の解析を完了できないことに関する結果またはメッセージを含む応答が送信されます。
APIをテストするには、 http://requestb.inサービスを使用すると便利です。 その上に新しいコンテナを取得し(RequestBinを作成)、受信したURLをcallback_urlとして指定します。 APIからのすべての回答が彼に届きます。ブラウザページを更新するだけです。
2.フィールドとAPI応答オプション
応答では次のフィールドが使用されます。
- success-解析URLを送信した結果。
- id-一意のリクエストID。
- already_processed-リクエストはすでに最近処理されています。
- not_shop-URLはストアに属していません。
- not_product-このURLの製品データはありません。
成功を除くすべてのフィールドが存在しない場合があります。
要求の直後に、JSON形式の応答を受け取ります。 IDは、callback_urlで送信した要求と受信した応答を一致させるために必要です。 この場合、すべてがうまくいき、製品は解析のために受け入れられました。
{ "success": true, "id": "583ea83a09e9497a0eb1b82a" }
すでに処理されているURLを6時間以内に解析しようとすると、このような答えが続きます。 この場合、callback_urlの呼び出しは続きません。
{ "success":true, "id":"583ea83a09e9497a0eb1b82a", "already_processed":true }
指定されたURLがオンラインストアのサイトに適用されないことをAPIが既に知っている場合、この回答が得られます。 アイテムは解析用に追加されず、callback_url呼び出しはありません。 サイトのブラックリストを維持します。これには、疑わしい店舗や提携店(他の店舗の商品の陳列ケースとして機能)が含まれます。
{ "success":false, "not_shop":true }
このURLに製品がないことをシステムが認識している場合(カテゴリページ、ストアメインページなど)。 アイテムは解析用に追加されず、callback_url呼び出しはありません。
{ "success":false, "not_product":true }
3.解析の結果を取得する
APIは、callback_urlで指定されたアドレスにPOSTリクエストとJSONの応答を送信します。 20秒後、次の解析結果が得られました。
{ "id":"583ea83a09e9497a0eb1b82a", "url":"http://www.lamoda.ru/p/ug174awohj47/shoes-uggaustralia-uggi/", "created_at":"2016-11-30T10:21:46.865Z", "title":" UGG Australia", "price":22800, "currency":"RUB", "img_url":"https://fetch.ee/assets/item-images/583e/a843a9436d700e54ef37.jpg", "brand":"UGG Australia" }
結果のJSONをより詳細に検討してください。 答えには常に3つの必須パラメーターがあります。
- id-一意のリクエストID。
- url-製品の最終URL(リダイレクトがあった場合、またはURLからさまざまな不要なquery_paramsを切り取ります(UTMタグなど)。
- created_at-商品を解析するためのリクエストを作成する時間。
次のオプションのいずれかが欠落している可能性があります。
- title-製品名;
- 価格-価格;
- 通貨-通貨コード(RUB、USD、EURなど)。
- img_url-製品画像へのリンク。
- ブランド-商品の生産者;
- out_of_stock:true-製品が販売されていない場合。
- 削除済み:true-製品がストアから完全に削除され、ストアのメインページであるカテゴリページにリダイレクトされた場合、またはサーバーから404応答を取得した場合。
- not_shop:true-解析中にAPIがURLがストアに属していないと判断したとき、以前は処理のリクエストを受け入れました。
- not_product:true-解析API中のヤギは、処理のリクエストは受け入れられましたが、URLに製品に関する情報が含まれていないと判断しました。
- 未処理:true-製品APIが製品タイトルまたは価格の主要パラメーターを取得できなかった場合。
Product APIが役立つ場合は、 fetch.ee / ru / developersのリクエストを残してください ! すでに利用可能なものに加えて、他にどの製品パラメーターを受け取りたいですか?