devterview_$ iniciar simulação

Schema-first x code-first

MédioPlenoSchema

Pergunta

Quais as diferenças entre definir um schema GraphQL 'schema-first' (SDL) e 'code-first', e o trade-off de cada um?

Resposta esperada

Schema-first: você escreve o schema em SDL (`type User { ... }`) como fonte da verdade, e implementa resolvers que precisam CASAR com ele. O schema é legível, serve de contrato compartilhável com o time de front, e ferramentas geram tipos a partir dele. Risco: schema e resolvers podem divergir se não houver checagem (types gerados + testes ajudam). Code-first: você define os tipos em código (decorators/builders da lib — Nexus, TypeGraphQL, Pothos) e o SDL é GERADO a partir disso. Vantagem: uma fonte da verdade (o código), tipos do resolver e do schema sempre em sincronia, refactor com o compilador. Custo: o SDL vira artefato de build (não dá pra 'só ler o arquivo'), e você fica preso à lib. Times TS costumam preferir code-first (Pothos) pela sincronia de tipos; times poliglotas ou com forte separação front/back às vezes preferem o contrato explícito do schema-first.

Por que perguntam isso

Pergunta pleno de GraphQL. Sinal bom: 'code-first mantém tipos do resolver e do schema em sincronia' e citar Pothos/Nexus.

#schema-first#code-first#sdl#pothos
publicidade

Perguntas de acompanhamento

Relacionadas