Graphql_Apollo

์–„ํŒํ•œ graphql & apollo ๊ฐ•์ขŒ - Apollo ์„œ๋ฒ„ ๊ตฌ์ถ•

2021. 6. 28. 22:11
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ ์„œ๋ก 
  3. ๐Ÿ“Œ ์„ค์น˜
  4. ๐Ÿ“Œ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„
  5. ๐Ÿ“Œ graphql playground
  6. ๐Ÿ“Œ ๊ฒฐ๋ก 
  7. ๐Ÿ“Œ ์ฐธ๊ณ 
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ์ฐจ

  • ์„œ๋ก 
  • ์„ค์น˜
  • ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„
  • graphql playground
  • ๊ฒฐ๋ก 
  • ์ฐธ๊ณ 

๐Ÿ“Œ ์„œ๋ก 

์–„์ฝ”๋‹˜์˜ ๊ฐ•์˜๋ฅผ ์ •๋ฆฌํ•œ ๋‚ด์šฉ๋“ค ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ•์˜๋Š” apollo server์™€ react๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋จผ์ € apollo-server๋ฅผ ์„ค์น˜ํ•ด๋ณผ๊นŒ์š”?

๐Ÿ“Œ ์„ค์น˜

๋จผ์ € graphlql๊ณผ apollo-server๋ฅผ ์„ค์น˜ํ•ด๋ณผ๊นŒ์š”?

npm install graphql apollo-server

๐Ÿ“Œ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„

const database = require('./database');
const { ApolloServer, gql } = require('apollo-server');

// ํƒ€์ž…์„ ์„ ์–ธ ํ•ฉ๋‹ˆ๋‹ค.
const typeDefs = gql`
  type Query {
    teams: [Team]
  }

  type Team {
    id: Int,
    manager: String,
    office: String,
    extension_number: String,
    mascot: String,
    cleaning_duty: String,
    project: String,
  }
`;

// resolvers๋Š” ์‹ค์ œ๋กœ query ํ˜น์€ mutations๊ฐ€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์ ์–ด์ค๋‹ˆ๋‹ค.
const resolvers = {
  Query: {
    teams: () => database.teams
  }
};

// Initialization
const server = new ApolloServer({ typeDefs, resolvers });

// ์‹ค์ œ๋กœ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ถ€๋ถ„
server.listen().then(({ url }) => {
  console.log(`Server is ready at ${url}`);
});

๐Ÿ“Œ graphql playground

์ด์ œ localhost:4000์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ ์‹ค์ œ๋กœ ํ•œ๋ฒˆ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

query {
  teams {
    id
    manager
    office
    extension_number
    mascot
    cleaning_duty
    project
  }
}

์—ฌ๊ธฐ์„œ ๋ˆˆ์น˜๋ฅผ ์ฑ„์…จ๊ฒ ์ง€๋งŒ teams์•ˆ์— ์žˆ๋Š” ๊ฒƒ๋“ค๋งŒ ๋‚ด๋ ค์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ น ๋งŒ์•ฝ์— id๋งŒ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด

query {
  teams {
    id
  }
}

์ด๋ ‡๊ฒŒ ๋ณด๋‚ด์ฃผ๋ฉด ๋˜๊ฒ ์ฃ ?

๐Ÿ“Œ ๊ฒฐ๋ก 

graphql์€ rest-api๋ฅผ ์ •๋ง ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๋Œ€์ฒดํ•œ๋‹ค๋ฉด ์–ด๋–ค ์  ๋•Œ๋ฌธ์— ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ• ์ง€ ํ•œ๋ฒˆ ์•ž์œผ๋กœ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์™„์„ฑ๋œ ๋ถ€๋ถ„์„ ๋ณด๋ฉฐ ์‹ค์ œ rest-api๋Š” ์–ด๋–ป๊ฒŒ ํ–ˆ์–ด์•ผ ํ–ˆ๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋น„๊ต๋„ ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด ์žˆ์„๊ฑฐ ๊ฐ™์•„์š”. ๊ทธ๋Ÿผ ๋‹ค์Œ ๊ฐ•์˜๋„ ๋ด์ฃผ์„ธ์š”! ์•ˆ๋…• ~

๐Ÿ“Œ ์ฐธ๊ณ 

  • ์–„์ฝ” ๊ฐ•์˜
๋ฐ˜์‘ํ˜•

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

Apollo - vue3์—์„œ apollo ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2020.12.21
Apollo - nodejs + mongo ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ  (0) 2020.12.20
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ ์„œ๋ก 
  3. ๐Ÿ“Œ ์„ค์น˜
  4. ๐Ÿ“Œ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„
  5. ๐Ÿ“Œ graphql playground
  6. ๐Ÿ“Œ ๊ฒฐ๋ก 
  7. ๐Ÿ“Œ ์ฐธ๊ณ 
'Graphql_Apollo' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Apollo - vue3์—์„œ apollo ์‚ฌ์šฉํ•˜๊ธฐ
  • Apollo - nodejs + mongo ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
eddie0329
eddie0329
Front-end Developer
๋ฐ˜์‘ํ˜•
eddie0329
Eddie Sunny's Blog
eddie0329
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)
    • Summary of Book (0)
    • Vue Study (11)
    • Vue TDD (9)
    • Vue BDD (5)
    • Design Pattern (9)
    • Javascript Study (3)
    • React Study (15)
    • React TDD (1)
    • Vue Storybook (2)
    • Refactoring (0)
    • Graphql_Apollo (3)
    • Svelte (8)
    • Open Source (1)
    • D3 (4)
    • Typescript (1)
    • CSS (2)
    • Android (0)
    • Java (0)
    • Kotlin (0)
    • ์žก๋‹ด (0)
    • Swift (19)
    • Rust (2)
    • ํšŒ์‚ฌ์ด์•ผ๊ธฐ (2)
    • ReactNative Study (2)
    • Vitest (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • client only
  • vue bdd
  • TDD
  • vue storybook
  • Nextjs
  • react-component-slot
  • CSS
  • Javascript
  • React Native
  • TypeScript
  • Kotlin
  • BDD
  • svelte
  • vue cypress
  • react useRef
  • react
  • Vue
  • apollo
  • storybook6
  • vue3
  • D3
  • Design Pattern
  • javascript pattern
  • swift
  • slot ํŒจํ„ด
  • swift5
  • vue tdd
  • jest
  • Cypress
  • Vue test

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
eddie0329
์–„ํŒํ•œ graphql & apollo ๊ฐ•์ขŒ - Apollo ์„œ๋ฒ„ ๊ตฌ์ถ•
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.