[GRAPHQL] Get started with Apollo Server (ok)
https://www.apollographql.com/docs/apollo-server/getting-started/
From your preferred development directory, create a directory for a new project and cd
into it:
Initialize a new Node.js project with npm
(or another package manager you prefer, such as Yarn):
Your project directory now contains a package.json
file.
Applications that run Apollo Server require two top-level dependencies:
apollo-server
is the core library for Apollo Server itself, which helps you define the shape of your data and how to fetch it.graphql
is the library used to build a GraphQL schema and execute queries against it.
Run the following command to install both of these dependencies and save them in your project's node_modules
directory:
Also create an empty index.js
file in your project's root directory:
To keep things simple, index.js
will contain all of the code for this example application.
Every GraphQL server (including Apollo Server) uses a schema to define the structure of data that clients can query. In this example, we'll create a server for querying a collection of books by title and author.
Mọi máy chủ GraphQL (bao gồm cả Máy chủ Apollo) đều sử dụng lược đồ để xác định cấu trúc dữ liệu mà máy khách có thể truy vấn. Trong ví dụ này, chúng tôi sẽ tạo một máy chủ để truy vấn bộ sưu tập sách theo tên sách và tác giả.
Open index.js
in your preferred editor and paste the following into it:
Đoạn mã này xác định một giản đồ GraphQL hợp lệ, đơn giản. Khách hàng sẽ có thể thực hiện truy vấn có tên sách và máy chủ của chúng tôi sẽ trả về một mảng không có hoặc nhiều Sách.
Bây giờ chúng tôi đã xác định cấu trúc dữ liệu của mình, chúng tôi có thể xác định chính dữ liệu đó. Apollo Server có thể tìm nạp dữ liệu từ bất kỳ nguồn nào mà bạn kết nối (bao gồm cơ sở dữ liệu, API REST, dịch vụ lưu trữ đối tượng tĩnh hoặc thậm chí là một máy chủ GraphQL khác). Với mục đích của hướng dẫn này, chúng tôi sẽ chỉ mã hóa một số dữ liệu ví dụ.
Add the following to the bottom of index.js
:
Đoạn mã này xác định một tập dữ liệu đơn giản mà khách hàng có thể truy vấn. Lưu ý rằng hai đối tượng trong mảng phù hợp với cấu trúc của Loại sách mà chúng ta đã xác định trong lược đồ của mình.
Chúng tôi đã xác định tập dữ liệu của mình, nhưng Apollo Server không biết rằng nó nên sử dụng tập dữ liệu đó khi thực hiện truy vấn. Để khắc phục điều này, chúng tôi tạo một trình phân giải.
Bộ phân giải cho Apollo Server biết cách tìm nạp dữ liệu được liên kết với một loại cụ thể. Vì mảng Sách của chúng tôi được mã hóa cứng, trình phân giải tương ứng là đơn giản.
Add the following to the bottom of index.js
:
Chúng tôi đã xác định lược đồ, tập dữ liệu và trình phân giải của mình. Bây giờ chúng ta chỉ cần cung cấp thông tin này cho Apollo Server khi chúng ta khởi tạo nó.
Add the following to the bottom of index.js
:
We're ready to start our server! Run the following from your project's root directory:
You should see the following output:
We're up and running!
Here's a GraphQL query string for executing the books
query:
Một trong những khái niệm quan trọng nhất của GraphQL là khách hàng có thể chọn chỉ truy vấn các trường họ cần. Xóa tác giả khỏi chuỗi truy vấn và thực thi lại. Phản hồi cập nhật để chỉ bao gồm trường tiêu đề cho mỗi cuốn sách!
Last updated