๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Development/API

[API] graphql-request | GraphQLClient, request

by DevIseo 2023. 6. 29.

graphql-request

  • GraphQL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ„๋‹จํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • GraphQL API๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

 โœ… ํ•„์š”ํ•œ ๊ฒƒ

  • headers - token, Content-Type
  • query
  • variables
  • endpoint ⇒API URI 

GraphQLClient

  • GraphQL ์„œ๋ฒ„์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • . GraphQLClient๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GraphQL API ์—”๋“œํฌ์ธํŠธ์— HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ์ˆ˜ ์žˆ์Œ
  • ์ด ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณต. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฉ”์„œ๋“œ๋Š” request๋ฉ”์„œ๋“œ

request

  • request๋ฉ”์„œ๋“œ๋Š” GraphQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ
  • GraphQL API ์—”๋“œํฌ์ธํŠธ URL๊ณผ GraphQL ์ฟผ๋ฆฌ๋ฅผ ์ธ์ˆ˜๋กœ ๋ฐ›์Œ
  • ์ด ๋ฉ”์„œ๋“œ๋Š” Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ด Promise๊ฐ€ ์ฒ˜๋ฆฌ๋  ๋•Œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜

GraphQLClient๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ

import { GraphQLClient } from 'graphql-request'
const client = new GraphQLClient('<https://api.example.com/graphql>') // endpoint ์ง€์ •
const query = `{
  allUsers {
    id
    name
  }
}`
client.request(query).then(data => console.log(data))
  1. GraphQLClient ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
  2. ์š”์ฒญํ•  GraphQL API ์—”๋“œํฌ์ธํŠธ URL ์„ค์ •
  3. GraphQLClient์˜ request ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ ์ˆ˜์‹ 

 

GraphQLClient๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ request๋งŒ์„ ์‚ฌ์šฉํ•ด์„œ๋„ ๊ฐ€๋Šฅ!

import { request } from 'graphql-request'

request({
  url: endpoint, //์š”์ฒญํ•  URL(Endpoint)
  document: query, // backend์— ์ •์˜๋œ query๋ฌธ
  variables: variables, // query์—์„œ ๋ณ€ํ•˜๋Š” ๊ฐ’ - queryvariables
  requestHeaders: headers, // header
}).then((data) => console.log(data))

 

'Development > API' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[API] GraphQL ๊ด€๋ จ dependency | Apollo Client, graphql-request  (0) 2023.06.15

๋Œ“๊ธ€