GraphQL 内部定義した OBJECTOROTACHIの配列を返す書ーバーを立てる
9187 단어 graphql
apollographql のチュートリアル通りに作る
https://www.apollographql.com/docs/apollo-server/getting-started/#step-1-create-a-new-project
디레크트리의 작업과 npm init
mkdir ~/source/gq2
cd ~/source/gq2
npm init --yes
ディレクトリを作成して npm を初期化する
"name": "gq2",
"version": "1.0.0",
"description": "",
"main": "index.js",
今回は private: true も type:module も入らなかった.
apollo-server 및 grapql의 인스톨
npm install apollo-server graphql
apollo-server 와 graphql をprojekto に入れる.
index.js를 사용하여 apollo-server를 사용하려면 して、型定義를 gql에서 typeDefs로 해야 합니다.
const { ApolloServer, gql } = require('apollo-server');
const typeDefs = gql`
type Book {
title: "String"
author: String
}
type Query {
books: [Book]
}
`;
を使って apollo-server에서 gql たちを import する 필요
typeDefs に型定義として gql を使ってまずは必須の Root である 쿼리
そこに 제목과 저자 をもつ 책 を結びつける.
index.js に実데이타의 오브제크트의 配列의 책 を作る
const books = [
{
title: 'The Awakening',
author: 'Kate Chopin',
},
{
title: 'City of Glass',
author: 'Paul Auster',
},
];
実データのObjectの配列を作る.
index.js に query の ric est が 来 た 時 の 対応 の resolvers を書く。
const resolvers = {
Query: {
books: () => books,
},
};
リゾルバとして、books のクエリが来た時に books のobjektoを返すように組む.
ApolloServer を使って型定義とリゾルバをまとめ、csrf 防止と Cache Bounded をつける。
const server = new ApolloServer({
typeDefs,
resolvers,
csrfPrevention: true,
cache: 'bounded',
});
型定義とりゾルバをまとめ、csrf 防止と Cache Bounded をつける.
듣기 でサーバーを起動して、.then で起動後に url を読み取って 콘솔 に出力する
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
これでサーバーを起動できる.
들어라 の中身では、普通に express の http server のstartなどが組まれている.
実際に走らせて、브라우자데確認する
node index.js
🚀 Server ready at http://localhost:4000/
開いているのを確認.
books の title だけをrickestusると
2 つのデータのタイトルのみが
저자 もリクエストにつけると、
2 つのデータのタイトルも著者も
レスポンスとして返ってくるのが確認できた.
curl --request POST \
> --header 'content-type: application/json' \
> --url http://localhost:4000/ \
> --data '{"query":"query ExampleQuery { books { title, author }}"}'
{"data":{"books":[{"title":"The Awakening","author":"Kate Chopin"},{"title":"City of Glass","author":"Paul Auster"}]}}
curl で POST 리크에스트를 하고도
中身が返ってくるのを確認できた.
Reference
이 문제에 관하여(GraphQL 内部定義した OBJECTOROTACHIの配列を返す書ーバーを立てる), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kaede_io/graphql-nei-bu-ding-yi-sita-obuziekutotatinopei-lie-wofan-susabawoli-teru-3db9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mkdir ~/source/gq2
cd ~/source/gq2
npm init --yes
"name": "gq2",
"version": "1.0.0",
"description": "",
"main": "index.js",
npm install apollo-server graphql
const { ApolloServer, gql } = require('apollo-server');
const typeDefs = gql`
type Book {
title: "String"
author: String
}
type Query {
books: [Book]
}
`;
const books = [
{
title: 'The Awakening',
author: 'Kate Chopin',
},
{
title: 'City of Glass',
author: 'Paul Auster',
},
];
const resolvers = {
Query: {
books: () => books,
},
};
const server = new ApolloServer({
typeDefs,
resolvers,
csrfPrevention: true,
cache: 'bounded',
});
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
node index.js
🚀 Server ready at http://localhost:4000/
curl --request POST \
> --header 'content-type: application/json' \
> --url http://localhost:4000/ \
> --data '{"query":"query ExampleQuery { books { title, author }}"}'
{"data":{"books":[{"title":"The Awakening","author":"Kate Chopin"},{"title":"City of Glass","author":"Paul Auster"}]}}
Reference
이 문제에 관하여(GraphQL 内部定義した OBJECTOROTACHIの配列を返す書ーバーを立てる), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/graphql-nei-bu-ding-yi-sita-obuziekutotatinopei-lie-wofan-susabawoli-teru-3db9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)