Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #3169

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/graphql-schema/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/graphql-schema/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-schema

Ou 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.md
Conteú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

  1. NUNCA use literais inline gql - Crie arquivos .gql
  2. SEMPRE execute o codegen após criar/modificar arquivos .gql
  3. SEMPRE adicione um handler onError às mutations
  4. 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:

  1. Ser desabilitado durante a mutation - Evitar cliques duplos
  2. Mostrar estado de carregamento - Feedback visual
  3. Ter um handler onError - O usuário sabe que falhou
  4. 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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3169
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas