TypeSpec: Uma alternativa para especificar APIs Rest

Fala Dev, tudo em riba?

Se você trabalha com codificação há algum tempo, muito provavelmente já precisou criar uma API REST — nem que fosse só uns endpoints básicos, aquele CRUDizinho — ou, pelo menos, já consumiu algum endpoint de uma API por aí.

Bom, caso você já tenha codificado uma API, provavelmente se deparou com a necessidade de especificar os endpoints existentes nela ou, quem sabe, até tenha soltado uns palavrões quando tentou consumir algum endpoint de uma API mal documentada e ficou batendo cabeça.

Existem inúmeras formas de criar uma especificação para uma API, e neste artigo vou te apresentar uma que achei bem interessante: o TypeSpec.

O que é TypeSpec?

O TypeSpec é uma linguagem criada pela Microsoft dedicada à modelagem e especificação de APIs. Ele foi feito para ajudar desenvolvedores a:

  • Descrever contratos (endpoints, tipos de dados, autenticação, erros etc.);
  • Gerar documentação e código automaticamente;
  • Padronizar a forma como APIs são descritas, reduzindo riscos de inconsistências;

Diferente de outras soluções como OpenAPI/Swagger, o TypeSpec se parece muito mais com uma linguagem de programação, tornando a curva de aprendizado bem leve para quem já escreve em TypeScript ou C#.

Por que usar TypeSpec?

Além da facilidade de leitura (visual clean e código organizado), o principal atrativo é a padronização, reaproveitamento de código e facilidade de manutenção do código. Outros motivos para usar são:

  • Menos erros humanos: contratos de API centralizados e validados por ferramentas.
  • Geração automática: a mesma definição pode gerar documentação, SDKs, OpenAPI, entre outros.
  • Extensibilidade: fácil adicionar regras, restrições e customizações.

Como funciona na prática?

O TypeSpec utiliza arquivos .tsp (TypeSpec files). Aqui vai um exemplo básico de como descrever um serviço simples:

import "@typespec/rest";

@service({
  title: "Catálogo de Produtos",
  version: "1.0.0"
})
model Produto {
  id: string;
  nome: string;
  preco: float32;
}

@route("/produtos")
resource Produtos {
  @get
  list(): Produto[];
}

Nesse exemplo, estamos criando um modelo de produto e um endpoint para listar todos os produtos (algo bem similar ao que faríamos em TypeScript ou C#).

Gerando documentação e código automático

Depois de definir sua API em TypeSpec, é simples gerar diferentes artefatos usando o CLI:

tsp compile

Esse comando pode gerar:

  • Documentação (em diferentes formatos);
  • Especificação OpenAPI (pra integração com outras ferramentas);
  • SDKs automatizados;

Tudo isso a partir de um mesmo ponto de definição, facilitando a manutenção e garantindo consistência.

Vantagens e recursos do TypeSpec

Entre os principais destaques do TypeSpec para o dia a dia:

  • Interoperabilidade: fácil integrar com outras ferramentas do ecossistema;
  • Padrões reutilizáveis: crie e aplique patterns de autenticação, formatação, erro, etc.;
  • Experiência para devs: sintaxe gostosa de ler e fácil de aprender;
  • Escalabilidade: ideal para APIs pequenas ou grandes corporações;
  • Geração OpenAPI sem dor: exportação e integração automáticas;

Começando no TypeSpec

Para testar agora mesmo:

  1. Instale o CLI com npm install -g @typespec/cli;
  2. Crie um arquivo .tsp e aplique seus exemplos (ou pode começar com o exemplo acima);
  3. Gere os artefatos com tsp compile;

A documentação oficial traz muitos exemplos para APIs REST, GraphQL, gRPC e casos complexos. Vale dar uma olhada para se aprofundar!

Conclusão

O TypeSpec chegou para simplificar — e muito — a vida de quem projeta e documenta APIs. Aposte na padronização, gere código automaticamente e foque no que realmente importa: entregar valor com segurança e eficiência.

Se curtiu o assunto, no vídeo abaixo eu mostro em detalhes como utilizar o TypeSpec, demonstrando o quanto ele é simples e produtivo 👇

Fico por aqui e até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *