๐ ๋ชฉ์ฐจ
- ์๋ก
- ์ค์น
- ๊ฐ๋จํ ๊ตฌํ
- 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 |