GraphQL + NodeJS: Giới thiệu
Lưu ý: Mã nguồn dự án cho hướng dẫn này có thể được tìm thấy trên GitHub. Bạn luôn có thể sử dụng nó làm tài liệu tham khảo trong các chương sau. Cũng lưu ý rằng mỗi khối mã được chú thích bằng một tên tệp. Các chú thích này liên kết trực tiếp đến tệp tương ứng trên GitHub để bạn có thể thấy rõ nơi đặt mã và kết quả cuối cùng sẽ như thế nào.
Tổng quan
GraphQL là ngôi sao đang lên của các công nghệ backend. Nó thay thế REST như một mô hình thiết kế API và đang trở thành tiêu chuẩn mới để cung cấp dữ liệu và chức năng của máy chủ.
Trong hướng dẫn này, bạn sẽ học cách để xây dựng một thành ngữ máy chủ GraphQL hoàn toàn từ đầu. Bạn sẽ sử dụng các công nghệ sau:
graphql-yoga
: Máy chủ GraphQL có đầy đủ tính năng tập trung vào khả năng thiết lập dễ dàng, hiệu suất và trải nghiệm nhà phát triển tuyệt vời. Nó được xây dựng dựa trên Express,apollo-server
,graphql-js
và nhiều thứ khác nữa.- Prisma: Prisma thay thế các ORM truyền thống. Sử dụng ứng dụng khách Prisma để triển khai trình phân giải GraphQL của bạn và đơn giản hóa truy cập cơ sở dữ liệu.
- GraphQL Playground: IDE GraphQL cho phép khám phá và làm việc với các chức năng của GraphQL API bằng cách gửi các Query và Mutation đến nó. Nó hơi giống với Postman, cung cấp chức năng tương tự cho các REST API.
Một trong các tính năng tuyệt vời của GraphQL Playground là:
- Tự động tạo một tài liệu toàn diện cho tất cả các chức năng có sẵn của API.
- Cung cấp một trình soạn thảo để bạn có thể viết các Query, Mutation và Subscription với tính năng gợi ý từ khóa và tô sáng cú pháp.
- Cho phép bạn dễ dàng chia sẻ các chức năng API của mình.
Mục tiêu của hướng dẫn
Mục tiêu của hướng dẫn này là xây dựng API cho bản sao của website Hacker News. Dưới đây là một bản tóm tắt nhanh chóng về những điều được mong đợi trong hướng dẫn này.
Bạn sẽ bắt đầu bằng cách tìm hiểu những điều cơ bản về cách máy chủ GraphQL hoạt động, chỉ đơn giản bằng cách định nghĩa lược đồ GraphQL cho máy chủ và viết các trình phân giải tương ứng.
Ban đầu, các trình phân giải này sẽ chỉ hoạt động với dữ liệu được lưu trữ trong bộ nhớ – vì vậy sẽ không có gì tồn tại khi máy chủ GraphQL ngừng chạy.
Vì không ai muốn một máy chủ không thể lưu trữ và duy trì dữ liệu, nên bạn sẽ sử dụng một cơ sở dữ liệu để lưu trữ dữ liệu. Cơ sở dữ liệu được cung cấp bởi Prisma và sẽ được kết nối với máy chủ GraphQL của bạn thông qua ứng dụng khách Prisma.
Khi bạn đã kết nối cơ sở dữ liệu, bạn sẽ thêm các tính năng nâng cao hơn vào API.
Bạn sẽ bắt đầu bằng cách triển khai chức năng đăng ký / đăng nhập cho phép người dùng xác thực với API. Điều này cũng sẽ cho phép bạn kiểm tra các quyền của người dùng đối với các chức năng API nhất định.
Phần tiếp theo của hướng dẫn là thêm chức năng thời gian thực vào API của bạn bằng cách sử dụng Subscription của GraphQL.
Cuối cùng, bạn sẽ cho phép người tiêu dùng API hạn chế danh sách các phần tử họ muốn truy xuất từ API bằng cách thêm các khả năng lọc và phân trang cho nó.
Hãy bắt đầu nào!