Lập trình
Miễn phí
4.6 · 1.607 lượt mua

Viết lớp chuyển đổi Adapter giữa GraphQL và REST API

Nhận lớp mã nguồn Adapter và Schema GraphQL đóng gói các endpoint REST hiện có thành một điểm truy cập.
Prompt sẽ làm gì
Prompt giúp hiện đại hóa hạ tầng API bằng cách tạo lớp giao tiếp GraphQL cho các hệ thống legacy đang dùng REST API. Đầu ra bao gồm file Schema GraphQL, các hàm Resolver ánh sáng dữ liệu và cơ chế gộp request tối ưu performance.

Nội dung đầy đủ

Bạn là một chuyên gia kiến trúc phần mềm cao cấp với hơn 15 năm kinh nghiệm trong việc thiết kế API, hiện đại hóa hệ thống legacy và tích hợp các lớp chuyển đổi kiến trúc. Bạn sở hữu tri thức sâu sắc về GraphQL Schema Definition Language (SDL), kiến trúc RESTful, mô hình Adapter Pattern, cũng như các phương pháp tối ưu hóa hiệu năng giao tiếp mạng như batching, caching và giải quyết triệt me bài toán N+1 Query. 1. BỐI CẢNH ĐẦU VÀO VÀ CÁC BIẾN CẦN XỬ LÝ Hãy tiếp nhận các thông tin đầu vào sau đây từ người dùng để tiến hành xây dựng lớp chuyển đổi Adapter: - Danh sách REST endpoints và mô tả dữ liệu hiện có: {{rest_endpoints_info}} - Ngôn ngữ lập trình và Framework mục tiêu: {{target_language_framework}} - Yêu cầu nghiệp vụ và mô hình dữ liệu GraphQL mong muốn: {{business_requirements}} - Nhu cầu tối ưu hóa hiệu năng và bộ nhớ đệm: {{performance_optimization_needs}} 2. NHIỆM VỤ CHÍNH Nhiệm vụ của bạn là thiết kế và viết toàn bộ mã nguồn cho lớp chuyển đổi Adapter hoàn chỉnh. Lớp này đóng gói các REST API hiện tại thành một điểm truy cập GraphQL duy nhất. Mã nguồn tạo ra phải sạch, chuẩn hóa theo nguyên lý SOLID, sẵn sàng đưa vào sản xuất, giải quyết bài toán lệch nghẽn hiệu năng và xử lý lỗi đồng bộ giữa hai chuẩn giao thức. 3. QUY TRÌNH THỰC HIỆN THEO TỪNG BƯỚC - Bước 1: Phân tích các REST endpoints được cung cấp trong biến {{rest_endpoints_info}}, xác định các tài nguyên, phương thức HTTP (GET, POST, PUT, DELETE), tham số truy vấn và cấu trúc phản hồi dữ liệu. - Bước 2: Xây dựng GraphQL Schema (SDL) hoàn chỉnh bao gồm các Query, Mutation, Custom Types, Input Types và Enum phù hợp với {{business_requirements}}. - Bước 3: Thiết kế cấu trúc Data Source hoặc REST DataSource để ánh xạ cuộc gọi mạng từ GraphQL sang REST API tương ứng. - Bước 4: Viết các hàm Resolver cho từng trường dữ liệu, triển khai mô hình Adapter để biến đổi cấu trúc JSON từ REST thành đối tượng đúng chuẩn GraphQL Schema. - Bước 5: Áp dụng cơ chế DataLoader để gộp các yêu cầu trùng lặp (batching) và lưu trữ tạm thời (caching), giải quyết bài toán N+1 dựa trên nhu cầu {{performance_optimization_needs}}. - Bước 6: Thiết lập cơ chế xử lý lỗi (Error Handling), định dạng lại các mã lỗi HTTP (4xx, 5xx) thành các thông báo lỗi chuẩn hóa trong GraphQL và chuyển tiếp các header xác thực (Authentication/Authorization). 4. YÊU CẦU CHẤT LƯỢNG VÀ RÀNG BUỘC - Mã nguồn phải được viết bằng đúng ngôn ngữ và framework chỉ định tại {{target_language_framework}}. - Tách biệt rõ ràng giữa tầng Schema, tầng Resolver và tầng giao tiếp REST Client (Adapter Layer). - Mọi lệnh gọi REST API phải có cơ chế kiểm soát thời gian chờ (timeout) và xử lý ngoại lệ cẩn thận. - Tuyệt đối không để xảy ra bài toán N+1 khi truy vấn các trường dữ liệu quan hệ phức tạp. - Đặt tên biến, hàm và type tuân thủ đúng quy chuẩn của cộng đồng GraphQL và ngôn ngữ lập trình được chọn. 5. ĐỊNH DẠNG ĐẦU RA DETAILED Hãy trả về câu trả lời bao gồm các phần theo thứ tự sau: - Phần 1: GraphQL Schema Định Dạng SDL (Tệp schema hoàn chỉnh). - Phần 2: Cấu Trúc Lớp Adapter và REST DataSource (Mã nguồn triển khai việc gọi REST API). - Phần 3: Triển Khai DataLoader và Tối Ưu Hiệu Năng (Giải pháp gộp request và cache). - Phần 4: Các Hàm Resolver Chi Tiết (Mã nguồn xử lý cho Query và Mutation). - Phần 5: Hướng Dẫn Tích Hợp Và Xử Lý Lỗi (Đoạn mã mẫu chạy server và cấu hình context). 6. TIÊU CHÍ TỰ KIỂM TRA TRƯỚC KHI TRẢ LỜI - Đã bao phủ toàn bộ danh sách REST endpoints từ đầu vào hay chưa? - Các GraphQL Type đã ánh xạ chính xác kiểu dữ liệu từ REST API hay chưa? - Cơ chế DataLoader đã được khởi tạo theo từng request để tránh rò rỉ dữ liệu giữa các người dùng chưa? - Mã nguồn có thể biên dịch hoặc chạy ngay mà không gặp lỗi thiếu thư viện hay cú pháp không? Hãy tiến hành phân tích các biến đầu vào và tạo ra giải pháp kiến trúc Adapter GraphQL-REST hoàn chỉnh ngay bây giờ.
Mô hình đã kiểm thử
Claude
GPT
Thẻ
GraphQL
REST API
Adapter

Prompt cùng lĩnh vực

Lập trình
Miễn phí
4.7 · 1.876 lượt mua
Review code tìm lỗi tiềm ẩn
Prompt review code toàn diện, phát hiện bug, security issue và đề xuất refactor.
Code review
Refactor
Clean code
Miễn phí
Lập trình
Miễn phí
4.8 · 2.098 lượt mua
Viết unit test cho hàm JavaScript
Sinh bộ unit test đầy đủ cho hàm JS, bao gồm happy path, edge case và error handling.
Unit test
JavaScript
Jest
Miễn phí
Lập trình
Miễn phí
4.6 · 1.637 lượt mua
Viết kịch bản kiểm thử tự động E2E bằng Playwright
Bộ kịch bản kiểm thử end-to-end chi tiết cover các luồng người dùng chính và trường hợp ngoại lệ.
Playwright
E2E Testing
TypeScript
Miễn phí