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 리크에스트를 하고도
中身が返ってくるのを確認できた.

좋은 웹페이지 즐겨찾기