Chủ đề thịnh hành
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Hãy nói rõ hơn về vấn đề của GraphQL
Lợi thế cốt lõi của GraphQL không phải là hệ thống kiểu, thực tế là các ràng buộc kiểu mạnh có thể được thực hiện tốt trong hệ thống RESTful. Tận dụng tối đa giải pháp orpc mà Zod có thể tạo ra mã cho nhiều nền tảng, giải pháp FastAPI + Pydantic trong hệ sinh thái Python cũng có thể đạt được hiệu ứng tương tự.
Lợi thế cốt lõi nhất của GraphQL nằm ở việc dữ liệu được tự do, tức là khách hàng có thể linh hoạt yêu cầu dữ liệu theo nhu cầu của mình. Đây cũng là một trong những chức năng chính mà lớp BFF truyền thống thực hiện.
Tuy nhiên, khác với lớp BFF truyền thống, hiện nay việc triển khai GraphQL thường sẽ gắn chặt với kinh doanh, không tách ra một cơ sở hạ tầng riêng để xử lý các vấn đề tương tự.
Trong tình huống này, tính linh hoạt sẽ mang lại rất nhiều vấn đề, trong hệ thống GraphQL (hoặc nói cách khác, các giải pháp BFF tương tự khi bị nhúng vào kinh doanh sẽ phải đối mặt với các vấn đề).
Điều đơn giản nhất là, tính linh hoạt sẽ mang lại một bề mặt tấn công lớn hơn. Điều đơn giản nhất, người dùng độc hại có thể tạo ra các truy vấn đủ phức tạp để tiêu tốn tài nguyên máy chủ của bạn chỉ bằng cách phân tích AST đơn thuần.
Tất nhiên, nhiều người có thể nói, à, bạn chỉ cần giới hạn độ phức tạp của truy vấn thì tốt rồi? Vậy tôi hỏi bạn, việc tính toán độ phức tạp của truy vấn có phải cũng cần phải giải mã AST không?
Tất nhiên, cũng có người có thể nói, vậy bạn chỉ cần giới hạn mẫu truy vấn thì tốt rồi? Vậy tôi hỏi bạn, mẫu của bạn có phải cũng cần phải giải mã AST không? Hơn nữa, bạn đã giới hạn lợi thế lớn nhất của GraphQL, bạn có gì khác biệt với API RESTful truyền thống?
Hơn nữa, việc phân tích AST của GraphQL nếu không tách ra khỏi kinh doanh, kết hợp với mô hình đơn luồng của Node, vòng lặp sự kiện của bạn sẽ bị kéo dài, trải nghiệm người dùng sẽ tăng lên nhiều bậc.
Nhiều thứ mà GraphQL cần làm đều cần một cơ sở hạ tầng riêng để tách ra khỏi kinh doanh, chẳng hạn như giới hạn tỷ lệ ở cấp độ truy vấn, logic xác thực đặc biệt, v.v.
Nói thẳng ra, đối với nền tảng dữ liệu hoặc dịch vụ nội bộ, GraphQL có thể là một lựa chọn khá tốt. Nhưng đối với các doanh nghiệp toC đã có quy mô, GraphQL sẽ mang lại nhiều độ phức tạp và không chắc chắn hơn so với API RESTful truyền thống, sẽ đặc biệt tốn kém cho việc phát triển cơ sở hạ tầng.
Hàng đầu
Thứ hạng
Yêu thích
