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

typespec-api-operations

Ajuda seu agente a adicionar comandos de API a um projeto. Ele configura rotas, parâmetros e respostas para operações como GET e POST.

O que ela faz

Esta ferramenta permite adicionar comandos para criar, ler, atualizar e apagar dados em um sistema. Ela também pode mostrar informações de forma visual e pedir confirmação antes de realizar ações.

Quando usar

  • ✓Quando você quer adicionar funcionalidades para gerenciar itens.
  • ✓Quando você precisa que a IA confirme ações importantes.
  • ✓Quando você quer que a IA apresente dados de forma organizada.

Exemplo do que pedir para a IA

“Adicione comandos para criar, listar, atualizar e deletar itens, e mostre uma confirmação visual antes de deletar.”

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/github/awesome-copilot/blob/main/skills/typespec-api-operations/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/typespec-api-operations/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela define as regras para a IA entender como interagir com os dados, como buscar, adicionar, modificar ou remover informações, e como apresentar essas ações.

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 github/awesome-copilot --skill typespec-api-operations

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/typespec-api-operations/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.

Adicionar Operações de API TypeSpec

Adicione operações RESTful a um plugin de API TypeSpec existente para o Microsoft 365 Copilot.

Adicionando Operações GET

GET Simples - Listar Todos os Itens

/**
 * List all items.
 */
@route("/items")
@get op listItems(): Item[];

GET com Parâmetro de Consulta - Filtrar Resultados

/**
 * List items filtered by criteria.
 * @param userId Optional user ID to filter items
 */
@route("/items")
@get op listItems(@query userId?: integer): Item[];

GET com Parâmetro de Caminho - Obter Item Único

/**
 * Get a specific item by ID.
 * @param id The ID of the item to retrieve
 */
@route("/items/{id}")
@get op getItem(@path id: integer): Item;

GET com Cartão Adaptativo

/**
 * List items with adaptive card visualization.
 */
@route("/items")
@card(#{
  dataPath: "$",
  title: "$.title",
  file: "item-card.json"
})
@get op listItems(): Item[];

Criar o Cartão Adaptativo (appPackage/item-card.json):

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.5",
  "body": [
    {
      "type": "Container",
      "$data": "${$root}",
      "items": [
        {
          "type": "TextBlock",
          "text": "**${if(title, title, 'N/A')}**",
          "wrap": true
        },
        {
          "type": "TextBlock",
          "text": "${if(description, description, 'N/A')}",
          "wrap": true
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.OpenUrl",
      "title": "View Details",
      "url": "https://example.com/items/${id}"
    }
  ]
}

Adicionando Operações POST

POST Simples - Criar Item

/**
 * Create a new item.
 * @param item The item to create
 */
@route("/items")
@post op createItem(@body item: CreateItemRequest): Item;

model CreateItemRequest {
  title: string;
  description?: string;
  userId: integer;
}

POST com Confirmação

/**
 * Create a new item with confirmation.
 */
@route("/items")
@post
@capabilities(#{
  confirmation: #{
    type: "AdaptiveCard",
    title: "Create Item",
    body: """
    Are you sure you want to create this item?
      * **Title**: {{ function.parameters.item.title }}
      * **User ID**: {{ function.parameters.item.userId }}
    """
  }
})
op createItem(@body item: CreateItemRequest): Item;

Adicionando Operações PATCH

PATCH Simples - Atualizar Item

/**
 * Update an existing item.
 * @param id The ID of the item to update
 * @param item The updated item data
 */
@route("/items/{id}")
@patch op updateItem(
  @path id: integer,
  @body item: UpdateItemRequest
): Item;

model UpdateItemRequest {
  title?: string;
  description?: string;
  status?: "active" | "completed" | "archived";
}

PATCH com Confirmação

/**
 * Update an item with confirmation.
 */
@route("/items/{id}")
@patch
@capabilities(#{
  confirmation: #{
    type: "AdaptiveCard",
    title: "Update Item",
    body: """
    Updating item #{{ function.parameters.id }}:
      * **Title**: {{ function.parameters.item.title }}
      * **Status**: {{ function.parameters.item.status }}
    """
  }
})
op updateItem(
  @path id: integer,
  @body item: UpdateItemRequest
): Item;

Adicionando Operações DELETE

DELETE Simples

/**
 * Delete an item.
 * @param id The ID of the item to delete
 */
@route("/items/{id}")
@delete op deleteItem(@path id: integer): void;

DELETE com Confirmação

/**
 * Delete an item with confirmation.
 */
@route("/items/{id}")
@delete
@capabilities(#{
  confirmation: #{
    type: "AdaptiveCard",
    title: "Delete Item",
    body: """
    ⚠️ Are you sure you want to delete item #{{ function.parameters.id }}?
    This action cannot be undone.
    """
  }
})
op deleteItem(@path id: integer): void;

Exemplo Completo de CRUD

Definir o Serviço e os Modelos

@service
@server("https://api.example.com")
@actions(#{
  nameForHuman: "API de Itens",
  descriptionForHuman: "Gerenciar itens",
  descriptionForModel: "Ler, criar, atualizar e excluir itens"
})
namespace ItemsAPI {
  
  // Modelos
  model Item {
    @visibility(Lifecycle.Read)
    id: integer;
    
    userId: integer;
    title: string;
    description?: string;
    status: "active" | "completed" | "archived";
    
    @format("date-time")
    createdAt: utcDateTime;
    
    @format("date-time")
    updatedAt?: utcDateTime;
  }


…
Perguntas frequentes

O que são 'operações RESTful'?

São um conjunto de regras para que sistemas de computador possam conversar entre si pela internet, como buscar informações (GET), enviar novas informações (POST), atualizar (PATCH) ou apagar (DELETE).

O que são 'Adaptive Cards'?

São cartões visuais que a IA pode usar para apresentar informações de forma mais clara e interativa, como listas ou detalhes de itens.

O que significa 'CRUD'?

É uma sigla em inglês para Criar (Create), Ler (Read), Atualizar (Update) e Apagar (Delete), que são as operações básicas para gerenciar dados.

Detalhes

Descrição original do autor

Add GET, POST, PATCH, and DELETE operations to a TypeSpec API plugin with proper routing, parameters, and adaptive cards

repo: github/awesome-copilot

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas