graphql-schema
Ajuda seu agente a criar e usar consultas GraphQL. É útil para buscar dados específicos e gerar código relacionado.
O que ela faz
Esta ferramenta ajuda a organizar e escrever código para se comunicar com um servidor de dados usando GraphQL. Ela garante que as consultas e modificações de dados sejam feitas de forma correta e eficiente.
Quando usar
- ✓Ao criar novas consultas ou modificações de dados em GraphQL.
- ✓Ao trabalhar com bibliotecas como Apollo Client para gerenciar dados.
- ✓Ao gerar automaticamente os tipos de dados para o seu código.
Exemplo do que pedir para a IA
“Como posso escrever uma consulta para buscar todos os usuários e seus e-mails?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você escreve suas consultas e modificações em arquivos separados com a extensão `.gql`. Depois, um programa especial gera o código necessário para usar essas definições no seu aplicativo, garantindo que tudo funcione corretamente.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill graphql-schemaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/graphql-schema/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de Schema GraphQL
Quando Usar
Use esta habilidade quando precisar de padrões de queries, mutations e geração de código GraphQL. Use ao criar operações GraphQL, trabalhar com Apollo Client ou gerar tipos.
Regras Principais
- NUNCA use literais inline
gql- Crie arquivos.gql - SEMPRE execute o codegen após criar/modificar arquivos
.gql - SEMPRE adicione um handler
onErroràs mutations - Use hooks gerados - Nunca escreva hooks Apollo brutos
Estrutura de Arquivos
src/
├── components/
│ └── ItemList/
│ ├── ItemList.tsx
│ ├── GetItems.gql # Query definition
│ └── GetItems.generated.ts # Auto-generated (don't edit)
└── graphql/
└── mutations/
└── CreateItem.gql # Shared mutations
Criando uma Query
Passo 1: Crie o arquivo .gql
# src/components/ItemList/GetItems.gql
query GetItems($limit: Int, $offset: Int) {
items(limit: $limit, offset: $offset) {
id
name
description
createdAt
}
}
Passo 2: Execute o codegen
npm run gql:typegen
Passo 3: Importe e use o hook gerado
import { useGetItemsQuery } from './GetItems.generated';
const ItemList = () => {
const { data, loading, error, refetch } = useGetItemsQuery({
variables: { limit: 20, offset: 0 },
});
if (error) return <ErrorState error={error} onRetry={refetch} />;
if (loading && !data) return <LoadingSkeleton />;
if (!data?.items.length) return <EmptyState />;
return <List items={data.items} />;
};
Criando uma Mutation
Passo 1: Crie o arquivo .gql
# src/graphql/mutations/CreateItem.gql
mutation CreateItem($input: CreateItemInput!) {
createItem(input: $input) {
id
name
description
}
}
Passo 2: Execute o codegen
npm run gql:typegen
Passo 3: Use com tratamento de erro OBRIGATÓRIO
import { useCreateItemMutation } from 'graphql/mutations/CreateItem.generated';
const CreateItemForm = () => {
const [createItem, { loading }] = useCreateItemMutation({
// Success handling
onCompleted: (data) => {
toast.success({ title: 'Item created' });
navigation.goBack();
},
// ERROR HANDLING IS REQUIRED
onError: (error) => {
console.error('createItem failed:', error);
toast.error({ title: 'Failed to create item' });
},
// Cache update
update: (cache, { data }) => {
if (data?.createItem) {
cache.modify({
fields: {
items: (existing = []) => [...existing, data.createItem],
},
});
}
},
});
return (
<Button
onPress={() => createItem({ variables: { input: formValues } })}
isDisabled={!isValid || loading}
isLoading={loading}
>
Create
</Button>
);
};
Requisitos de UI para Mutations
CRÍTICO: Cada gatilho de mutation deve:
- Ser desabilitado durante a mutation - Evitar cliques duplos
- Mostrar estado de carregamento - Feedback visual
- Ter um handler onError - O usuário sabe que falhou
- Mostrar feedback de sucesso - O usuário sabe que funcionou
// CORRECT - Complete mutation pattern
const [submit, { loading }] = useSubmitMutation({
onError: (error) => {
console.error('submit failed:', error);
toast.error({ title: 'Save failed' });
},
onCompleted: () => {
toast.success({ title: 'Saved' });
},
});
<Button
onPress={handleSubmit}
isDisabled={!isValid || loading}
isLoading={loading}
>
Submit
</Button>
Opções de Query
Políticas de Fetch
| Política | Usar Quando |
|---|---|
cache-first |
Dados raramente mudam |
cache-and-network |
Quer rápido + atualizado (padrão) |
network-only |
Sempre precisa do mais recente |
no-cache |
Nunca cache (raro) |
Opções Comuns
useGetItemsQuery({
variables: { id: itemId },
// Fetch strategy
fetchPolicy: 'cache-and-network',
// Re-render on network status changes
notifyOnNetworkStatusChange: true,
// Skip if condition not met
skip: !itemId,
// Poll for updates
pollInterval: 30000,
});
Atualizações Otimistas
Para feedback instantâneo na UI:
const [toggleFavorite] = useToggleFavoriteMutation({
optimisticResponse: {
toggleFavorite: {
__typename: 'Item',
id: itemId,
isFavorite: !currentState,
},
},
onError: (error) => {
// Rollback happens automatically
console.error('toggleFavorite failed:', error);
toast.error({ title: 'Failed to update' });
},
});
…
Perguntas frequentes
O que são 'queries' e 'mutations'?
'Queries' são como perguntas que você faz ao servidor para obter dados. 'Mutations' são como comandos para alterar dados no servidor (criar, atualizar ou deletar).
Por que não devo escrever o código `gql` diretamente?
Escrever diretamente pode levar a erros e dificulta a manutenção. Usar arquivos `.gql` e gerar o código automaticamente garante consistência e evita problemas.
O que é 'codegen'?
'Codegen' (geração de código) é um processo automático que cria partes do seu código com base nas definições de GraphQL. Isso economiza tempo e reduz erros.
Detalhes
Descrição original do autor
GraphQL queries, mutations, and code generation patterns. Use when creating GraphQL operations, working with Apollo Client, or generating types.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3169
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC