GraphQL
GraphQL resolve um problema específico que podemos encontrar em APIs RESTful convencionais: trazer dados a mais ou a menos nas requisições. Quem nunca integrou com uma API onde o endpoint retornava muita informação inútil e que apenas pesava a requisição desnecessariamente? Ou pior, a requisição não retornava um dado crucial para a montagem da informação em tela?! Esta demo vai integrar com duas APIs idênticas usando protocolos de comunicação diferentes. Vamos mostrar na prática a diferença entre uma API GraphQL e uma API RESTful, mostrar o paradigma na prática — queries com variáveis, fragments reutilizáveis entre telas, paginação cursor-based e o cache normalizado do Apollo guardando cada entidade uma única vez, não uma cópia por request.
Tecnologias
- Apollo Client
- GitHub GraphQL API v4
- TypeScript codegen
Arquitetura
- Cliente Apollo consumindo a GitHub GraphQL API v4
- Cache normalizado (InMemoryCache)
- Fragments reutilizáveis
- Paginação cursor-based
Conceitos
- Fragments
- Paginação por cursor
- InMemoryCache
- Prós e contras entre REST e GraphQL
Área de demonstração
A demonstração interativa deste recurso estará disponível em breve.
Em Breve
A demonstração interativa de GraphQL está em desenvolvimento. A arquitetura e os detalhes técnicos já estão documentados acima.