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

trpc-fullstack

Cria APIs seguras e com tipos de ponta a ponta usando tRPC. Facilita a integração com Next.js e React, garantindo a segurança dos dados.

O que ela faz

O tRPC Full-Stack ajuda a criar APIs (conexões entre o servidor e o cliente do seu aplicativo) que são seguras em termos de tipos de dados. Isso significa que o código que você escreve no servidor é automaticamente entendido pelo cliente, evitando erros.

Quando usar

  • ✓Ao construir um aplicativo completo (front-end e back-end) em TypeScript.
  • ✓Quando você quer que o cliente e o servidor se comuniquem sem erros de tipo.
  • ✓Ao adicionar funcionalidades em tempo real, como atualizações instantâneas.

Exemplo do que pedir para a IA

“Crie uma API segura para meu aplicativo Next.js que permita criar e listar posts.”

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/trpc-fullstack/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/trpc-fullstack/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você define 'routers' (agrupadores de funções) e 'procedures' (as funções em si) no servidor. O tRPC garante que os tipos de dados que você usa no servidor sejam os mesmos no cliente, validando tudo automaticamente.

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 trpc-fullstack

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/trpc-fullstack/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.

tRPC Full-Stack

Visão Geral

tRPC permite que você crie APIs totalmente seguras por tipo sem escrever um esquema ou etapa de geração de código. Seus tipos TypeScript fluem do roteador do servidor diretamente para o cliente — assim, cada chamada de API tem autocompletar, validação em tempo de compilação e é segura para refatoração. Use essa habilidade ao construir monorepos TypeScript, aplicativos Next.js ou qualquer projeto onde o servidor e o cliente compartilham uma base de código.

Quando Usar Esta Habilidade

  • Use ao construir um aplicativo full-stack TypeScript (Next.js, Remix, Express + React) onde o cliente e o servidor compartilham um único repositório
  • Use quando quiser segurança de ponta a ponta em chamadas de API sem a sobrecarga de esquema REST/GraphQL
  • Use ao adicionar recursos em tempo real (assinaturas) a uma configuração tRPC existente
  • Use ao projetar middleware de várias etapas (autenticação, limitação de taxa, escopo de locatário) em procedimentos tRPC
  • Use ao migrar uma API REST/GraphQL existente para tRPC incrementalmente

Conceitos Principais

Roteadores e Procedimentos

Um roteador agrupa procedimentos relacionados (pense: endpoints). Procedimentos são funções tipadas — query para leituras, mutation para escritas, subscription para fluxos em tempo real.

Validação de Entrada com Zod

Todas as entradas de procedimento são validadas com esquemas Zod. A entrada validada e tipada está disponível no manipulador de procedimento — sem análise manual.

Contexto

context é um estado compartilhado passado para cada procedimento — sessão de autenticação, cliente de banco de dados, cabeçalhos de solicitação, etc. Ele é construído uma vez por solicitação em uma fábrica de contexto. Importante: O App Router e o Pages Router do Next.js exigem fábricas de contexto separadas porque os manipuladores do App Router recebem um fetch Request, não um Node.js NextApiRequest.

Middleware

Cadeias de middleware são executadas antes de um procedimento. Use-as para autenticação, log e enriquecimento de solicitação. Elas podem estender o contexto para procedimentos subsequentes.


Como Funciona

Etapa 1: Instalar e Inicializar

npm install @trpc/server @trpc/client @trpc/react-query @tanstack/react-query zod

Crie a instância tRPC e os construtores reutilizáveis:

// src/server/trpc.ts
import { initTRPC, TRPCError } from '@trpc/server';
import { type Context } from './context';
import { ZodError } from 'zod';

const t = initTRPC.context<Context>().create({
  errorFormatter({ shape, error }) {
    return {
      ...shape,
      data: {
        ...shape.data,
        zodError:
          error.cause instanceof ZodError ? error.cause.flatten() : null,
      },
    };
  },
});

export const router = t.router;
export const publicProcedure = t.procedure;
export const middleware = t.middleware;

Etapa 2: Definir Duas Fábricas de Contexto

Os manipuladores do App Router do Next.js recebem um fetch Request (não um Node.js NextApiRequest), portanto, o contexto deve ser construído de forma diferente dependendo do local da chamada. Defina uma fábrica por superfície:

// src/server/context.ts
import { type FetchCreateContextFnOptions } from '@trpc/server/adapters/fetch';
import { auth } from '@/server/auth'; // Next-Auth v5 / your auth helper
import { db } from './db';

/**
 * Context for the HTTP handler (App Router Route Handler).
 * `opts.req` is the fetch Request — auth is resolved server-side via `auth()`.
 */
export async function createTRPCContext(opts: FetchCreateContextFnOptions) {
  const session = await auth(); // server-side auth — no req/res needed
  return { session, db, headers: opts.req.headers };
}

/**
 * Context for direct server-side callers (Server Components, RSC, cron jobs).
 * No HTTP request is involved, so we call auth() directly from the server.
 */
export async function createServerContext() {
  const session = await auth();
  return { session, db };
}

export type Context = Awaited<ReturnType<typeof createTRPCContext>>;

Etapa 3: Criar um Middleware de Autenticação e um Procedimento Protegido

// src/server/trpc.ts (continued)
const enforceAuth = middleware(({ ctx, next }) => {
  if (!ctx.session?.user) {
    throw new TRPCError({ code: 'UNAUTHORIZED' });
  }
  return next({
    ctx: {
      // Narrows type: session is non-null from here
      session: { ...ctx.session, user: ctx.session.user },
    },
  });
});

export const protectedProcedure = t.procedure.use(enforceAuth);

Etapa 4: Criar Roteadores

// src/server/routers/post.ts
import { z } from 'zod';
import { router, publicProcedure, protectedProcedure } from '../trpc';
import { TRPCError } from '@trpc/server';

export const postRouter = router({
  list: publicProcedure
    .input(
      z.object({

…
Perguntas frequentes

O que são 'routers' e 'procedures'?

Routers são como pastas que organizam suas funções. Procedures são as funções específicas que realizam tarefas, como ler dados (query), escrever dados (mutation) ou enviar atualizações em tempo real (subscription).

O que é 'middleware'?

Middleware são verificações que acontecem antes de uma função ser executada. É útil para coisas como verificar se o usuário está logado antes de permitir que ele crie um post.

Como a validação de dados funciona?

Você usa uma ferramenta chamada Zod para definir como os dados devem ser. O tRPC usa essas definições para garantir que os dados enviados e recebidos estejam corretos, evitando erros.

Detalhes

Descrição original do autor

Build end-to-end type-safe APIs with tRPC — routers, procedures, middleware, subscriptions, and Next.js/React integration patterns.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas