
posting
by lualfe
My dotfiles
SKILL.md
name: posting description: Deve ser usado quando o usuário pedir para gerar collections do Posting com base em APIs escritas no código.
Skill: Posting Collection Generator
Gera e atualiza collections do Posting a partir de código de APIs HTTP.
Quando usar
- Quando o usuário pedir para gerar collections do Posting
- Quando o usuário mencionar
/postingou pedir para criar requests para suas APIs - Quando o usuário quiser documentar APIs existentes no formato Posting
Fluxo de trabalho
1. Identificar o código da API
Pergunte ao usuário qual diretório contém o código da API, ou use o diretório fornecido.
2. Analisar o código
Use o agente Explore para encontrar:
- Arquivos de rotas/endpoints (ex:
routes.ts,router.go,urls.py,*Controller.java) - Handlers/Controllers que definem os endpoints
- Middlewares de autenticação
- Schemas/DTOs que definem os bodies das requests
- Documentação OpenAPI/Swagger se existir
3. Extrair informações de cada endpoint
Para cada endpoint encontrado, extraia:
- Método HTTP: GET, POST, PUT, PATCH, DELETE, etc.
- URL/Path: incluindo parâmetros de path (
:id,{id}) - Query parameters: parâmetros opcionais e obrigatórios
- Headers requeridos: Content-Type, Authorization, custom headers
- Body: estrutura JSON, form-data, etc.
- Autenticação: Bearer token, Basic auth, API key
4. Gerar arquivos .posting.yaml
Crie os arquivos seguindo a estrutura do Posting.
Formato do arquivo .posting.yaml
name: Nome descritivo da request
description: Descrição do que o endpoint faz
method: POST
url: https://api.example.com/users/:id
body:
content: |
{
"field1": "value1",
"field2": "value2"
}
headers:
- name: Content-Type
value: application/json
- name: Authorization
value: Bearer ${AUTH_TOKEN}
params:
- name: queryParam1
value: "value"
- name: queryParam2
value: "value"
path_params:
- name: id
value: "1"
auth:
type: bearer
token: ${AUTH_TOKEN}
Campos disponíveis
| Campo | Descrição | Obrigatório |
|---|---|---|
name | Nome descritivo da request | Sim |
description | Descrição detalhada | Não |
method | HTTP method (GET, POST, PUT, PATCH, DELETE) | Sim |
url | URL completa do endpoint | Sim |
body | Objeto com content contendo o body | Não |
headers | Lista de objetos {name, value} | Não |
params | Query parameters como lista {name, value} | Não |
path_params | Parâmetros de path como lista {name, value} | Não |
auth | Configuração de autenticação | Não |
Tipos de autenticação
# Bearer Token
auth:
type: bearer
token: ${AUTH_TOKEN}
# Basic Auth
auth:
type: basic
username: ${USERNAME}
password: ${PASSWORD}
# Digest Auth
auth:
type: digest
username: ${USERNAME}
password: ${PASSWORD}
Variáveis
Use a sintaxe ${VARIABLE_NAME} ou $VARIABLE_NAME para interpolação de variáveis.
As variáveis são definidas em arquivos .env:
posting.env- carregado automaticamente- Arquivos customizados via
posting --env file.env
Estrutura de diretórios recomendada
collection/
├── posting.env # Variáveis de ambiente
├── auth/
│ ├── login.posting.yaml
│ └── register.posting.yaml
├── users/
│ ├── list-users.posting.yaml
│ ├── get-user.posting.yaml
│ ├── create-user.posting.yaml
│ ├── update-user.posting.yaml
│ └── delete-user.posting.yaml
└── products/
├── list-products.posting.yaml
└── create-product.posting.yaml
Exemplo de arquivo .env
# posting.env
BASE_URL=http://localhost:3000
AUTH_TOKEN=your-token-here
API_KEY=your-api-key
Boas práticas
- Nomes de arquivos: Use kebab-case descritivo (ex:
create-user.posting.yaml) - Organização: Agrupe requests por recurso/domínio em subdiretórios
- Variáveis: Use variáveis para URLs base, tokens, e valores que mudam entre ambientes
- Descrições: Inclua descrições claras do propósito de cada endpoint
- Exemplos realistas: Use valores de exemplo que façam sentido para o domínio
- Path params: Sempre inclua valores padrão para facilitar testes
Exemplo completo
Para um endpoint POST /api/users que cria um usuário:
name: Create User
description: Creates a new user in the system. Requires admin authentication.
method: POST
url: ${BASE_URL}/api/users
body:
content: |
{
"name": "John Doe",
"email": "john@example.com",
"role": "user"
}
headers:
- name: Content-Type
value: application/json
- name: X-Request-ID
value: ${REQUEST_ID}
auth:
type: bearer
token: ${AUTH_TOKEN}
Atualização de collections existentes
Quando atualizar uma collection existente:
- Leia os arquivos
.posting.yamlexistentes - Compare com os endpoints encontrados no código
- Identifique endpoints novos, modificados ou removidos
- Pergunte ao usuário como proceder com cada mudança
- Mantenha customizações feitas pelo usuário (descrições, exemplos personalizados)
Frameworks suportados
O skill deve ser capaz de analisar APIs escritas em:
- Node.js: Express, Fastify, NestJS, Hono, Koa
- Python: FastAPI, Flask, Django REST
- Go: Gin, Echo, Chi, net/http
- Ruby: Rails, Sinatra
- Java/Kotlin: Spring Boot, Quarkus
- Rust: Actix-web, Axum, Rocket
- PHP: Laravel, Symfony
Para cada framework, procure pelos padrões específicos de definição de rotas.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です