Popularne tematy
#
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.
Rozwiń temat problemów z GraphQL.
Główną zaletą GraphQL nie jest tak zwany system typów, w rzeczywistości silne ograniczenia typów można również dobrze zrealizować w systemie RESTful. W pełni wykorzystano rozwiązanie orpc, które może generować kod dla wielu platform, a w ekosystemie Pythona rozwiązanie FastAPI + Pydantic może osiągnąć podobny efekt.
Najważniejszą zaletą GraphQL jest elastyczność w żądaniu danych, co oznacza, że klient może elastycznie żądać danych zgodnie z własnymi potrzebami. To również jedna z głównych funkcji tradycyjnej warstwy BFF.
Jednak w przeciwieństwie do tradycyjnej warstwy BFF, obecnie implementacja GraphQL zazwyczaj jest silnie związana z biznesem, nie wyodrębniając osobnej infrastruktury do obsługi podobnych problemów.
W takiej sytuacji elastyczność może prowadzić do wielu problemów, które występują w systemie GraphQL (lub podobnych rozwiązaniach BFF, które są głęboko osadzone w biznesie).
Najprostsza kwestia to, że elastyczność zwiększa powierzchnię ataku. Najprostsza kwestia, złośliwy użytkownik może skonstruować wystarczająco skomplikowane zapytanie, aby poprzez proste analizowanie AST znacznie zużyć zasoby twojego serwera.
Oczywiście wiele osób może powiedzieć: "Cóż, wystarczy ograniczyć złożoność zapytań, prawda?" A ja pytam, czy obliczenie złożoności zapytania nie wymaga również analizy AST?
Oczywiście są też tacy, którzy mogą powiedzieć: "Cóż, wystarczy ograniczyć wzorce zapytań, prawda?" A ja pytam, czy twój wzorzec również nie wymaga analizy AST? A ograniczając największą zaletę GraphQL, jaka jest różnica między tobą a tradycyjnym API RESTful?
Ponadto, jeśli analiza AST GraphQL nie zostanie wyodrębniona z biznesu, w połączeniu z modelem jednowątkowym Node, twoja pętla zdarzeń może zostać zablokowana, co znacznie pogorszy doświadczenia użytkowników.
Wiele rzeczy, które GraphQL musi zrobić, wymaga osobnej infrastruktury, aby oddzielić je od biznesu, takich jak limitowanie zapytań na poziomie zapytania, specjalna logika autoryzacji itd.
Szczerze mówiąc, dla platform danych lub usług wewnętrznych, GraphQL może być całkiem niezłym wyborem. Jednak dla dużych biznesów toC, GraphQL wprowadza więcej złożoności i niepewności niż tradycyjne API RESTful, co znacznie obciąża rozwój infrastruktury.
Najlepsze
Ranking
Ulubione
