Vamos expandir os problemas do GraphQL A vantagem do núcleo GraphQL não é o chamado sistema de tipos; na verdade, restrições de tipos fortes podem ser bem implementadas em sistemas RESTful. Aproveitando ao máximo o esquema orpc do Zod, que pode gerar código multi-terminal, a solução FastAPI + Pydantic no ecossistema Python pode alcançar efeitos semelhantes A principal vantagem do GraphQL é que ele permite que os clientes solicitem dados de forma flexível conforme suas necessidades. Essa também é uma das principais funcionalidades implementadas pela camada tradicional BFF. No entanto, a diferença em relação à camada tradicional BFF é que a implementação do GraphQL geralmente está fortemente ligada ao negócio, e não há uma infraestrutura separada para lidar com problemas semelhantes. Nesse caso, a flexibilidade trará muitos problemas para o sistema GraphQL (ou esquemas BFF similares serão enfrentados após a entrada no negócio). No seu ponto mais simples, a flexibilidade levará a uma superfície de ataque maior. No seu ponto mais simples, um usuário malicioso pode construir uma consulta complexa o suficiente para consumir muitos dos recursos do seu servidor por meio de uma simples análise AST. Claro, muitas pessoas podem dizer: "Ah, por que você não limita a complexidade do Query?" Então deixe-me perguntar, é necessário resolver ASTs ou ASTs ao calcular a complexidade do Query? Claro, algumas pessoas podem dizer: por que não limitar o padrão da Consulta? Então deixa eu te perguntar, seus padrões também precisam resolver ASTs? E você limita a maior vantagem do GraphQL, qual é a diferença entre você e as APIs tradicionais RESTful? Além disso, se a análise AST do GraphQL não for resolvida pelo negócio, com o modelo single-threaded do Node, o atraso do seu loop de eventos será diretamente destruído, e a experiência do usuário subirá em níveis N Muitas das coisas que o próprio GraphQL precisa fazer precisam ser resolvidas por uma infraestrutura separada para resolver o negócio, como limites de taxa em nível de consulta, lógica especial de autenticação, etc Francamente, o GraphQL pode ser uma boa escolha para plataformas de dados ou serviços internos. No entanto, para serviços toC de alto volume, o GraphQL trará mais complexidade e incerteza do que as APIs RESTful tradicionais, que exigirão mais desenvolvimento de infraestrutura.