⊗jsrxPmSDGRS 43 of 57 menu

GETリクエストによるサーバーからのデータ送信 in Redux

では、データベースが用意できました。Reduxアプリケーションを起動する際に最初に行うことは、サーバーから商品データを取得することです。そのためには、アプリケーションからGETリクエストを送信する必要があります。サーバー側でこのリクエストを処理してみましょう。

商品アプリケーションを開き、その中にあるファイル server.js を開きます。HTTPリクエストを扱うためには、mswからいくつかのツールをファイルにインポートする必要があります。さっそくやってみましょう:

import { http, HttpResponse, delay } from 'msw'

また、現実を反映させてネットワークの遅延の可能性にも対応しましょう。データの読み込みが表示されるように、人工的な遅延の値を 2 秒に設定します。const PRODS_PER_SELLER = 2 の後に記述します:

const ARTIFICIAL_DELAY_MS = 2000

次に、ファイルの最後、ワーカーのエクスポートの前に、APIリクエストハンドラーのための配列を定義します:

export const handlers = []

そして、角括弧内に商品へのGETリクエストをインターセプトする最初のハンドラーを記述します:

export const handlers = [http.get()]

http.get の最初のパラメーターとして、例えば '/fakeServer/products' のようなフェイクアドレスを渡し、2番目のパラメーターとして非同期のコールバック関数を渡します:

export const handlers = [http.get('/fakeServer/products', async () => {})]

次に、このコールバックのコードを記述します。これを使用して、データベースからすべての商品を抽出します。ここでは、前回の授業で作成した関数 serializeProduct も使用します。これを map に渡しましょう。その後、(ネットワークが遅いかのように)遅延を発生させ、response に商品データオブジェクトをJSON形式で返します:

export const handlers = [ http.get('/fakeServer/products', async () => { const products = db.product.getAll().map(serializeProduct) await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(products) }), ]

最後に。ワーカーの最初のハンドラーを作成したので、このワーカーに handlers 配列を渡しましょう。そのために、ファイルの最後のコード行を次のように修正します:

export const worker = setupWorker(...handlers)

受講生用のアプリケーションを開き、その中のファイル server.js を開いてください。mswから指定されたツールをファイルにインポートします。このレッスンの内容を学び、リクエストインターセプトのための空のハンドラー配列を作成してください。その中に、受講生のGETリクエストを処理するハンドラーのコードを記述してください。パスは '/fakeServer/students' としてください。

ファイルの最後で、ハンドラー配列 handlers をワーカーに渡すことを忘れないでください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否