⊗jsrxPmSDCl 44 of 57 menu

Redux 애플리케이션을 위한 클라이언트

지난 수업에서 우리는 애플리케이션의 서버 측 작업을 거의 완료했으며, 다음 수업에서 필요에 따라 약간 보충할 것입니다. 이제 서버에 HTTP 요청을 보낼 애플리케이션 클라이언트를 생성해야 합니다.

제품 애플리케이션을 열고 api 폴더에 client.js 파일을 생성하세요. 먼저 GET 및 POST 요청 모두에 대해 작동할 함수 client 자체를 작성하겠습니다. 매개변수로 경로, 유형 및 (POST의 경우) 본문(있는 경우)을 받습니다:

export async function client(url, method, body = {}) {}

다음으로 요청을 위해 다양한 정보를 전달할 객체 options를 구성해야 합니다. 여기에는 요청 유형과 헤더가 포함됩니다:

export async function client(url, method, body = {}) { const options = { method: method, headers: { 'Content-Type': 'application/json', }, } }

body 속성은 선택 사항이며, POST 요청인 경우에만 전달해야 합니다. 이를 위해 client 내부에서 options 객체 코드 이후에 POST 메서드가 선택된 경우 JSON 형식의 요청 본문과 함께 options에 추가하겠습니다:

if (method === 'POST') { options.body = JSON.stringify(body) }

그런 다음 client 코드 아래에서 try 블록을 구성하고, 그 첫 번째 줄에서 fetch를 사용하여 서버로부터 응답을 받습니다. 실패할 경우 일반적으로 오류와 함께 프로미스를 반환합니다:

let data try { const response = await window.fetch(url, options) } catch (err) { return Promise.reject(err.message ? err.message : data) }

이제 try 블록에 코드를 추가해 보겠습니다. response를 받은 후 처리해야 합니다. 여기서 JSON 데이터를 추출하고 응답 상태가 정상임을 나타내면 데이터와 정보(상태, 헤더, 주소)가 포함된 객체를 반환합니다. 상태가 'ok'가 아니면 상태 텍스트와 함께 예외를 발생시킵니다:

try { const response = await window.fetch(url, options) data = await response.json() if (response.ok) { return { status: response.status, headers: response.headers, url: response.url, data, } } throw new Error(response.statusText) }

client 함수에 대한 코드가 준비되었으며, 호출 시 GET 및 POST 메서드가 어떻게 작동할지 작성하기만 하면 됩니다. client 함수 이후에 해당 코드를 작성해 보겠습니다. client.get 메서드는 매개변수로 경로를 받고 이 경로와 GET 요청 유형을 전달하여 client 함수를 호출합니다:

client.get = (url) => client(url, 'GET')

client.postclient에 경로, POST 요청 유형 및 요청 본문을 전달해야 합니다:

client.post = (url, body) => client(url, 'POST', body)

여기까지입니다. 우리의 작은 클라이언트가 서버와 작업할 준비가 되었습니다.

학생 애플리케이션을 열고, api 폴더에 client.js 파일을 생성하세요. 수업 자료를 검토한 후 함수 client와 두 메서드 client.getclient.post의 코드를 작성(또는 복사)하세요.

한국어
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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부