rest-api-design
Design de APIs REST seguindo convenções padronizadas. Use quando o usuário pedir para criar, desenhar ou refatorar endpoints REST. Define padrões de nomenclatura, status codes, envelopes de erro, paginação e versionamento. O framework (FastAPI) gera o OpenAPI automaticamente a partir do código.
Works with
---
name: rest-api-design
description: Design de APIs REST seguindo convenções padronizadas. Use quando o usuário pedir para criar, desenhar ou refatorar endpoints REST. Define padrões de nomenclatura, status codes, envelopes de erro, paginação e versionamento. O framework (FastAPI) gera o OpenAPI automaticamente a partir do código.
license: MIT
---
Design de APIs REST orientado a **convenções**. O OpenAPI é gerado automaticamente pelo FastAPI a partir dos schemas Pydantic e decorators de rota — não criamos YAML manualmente.
**Arquivos de referência** — leia sob demanda conforme a fase exigir:
- `conventions.md` — URIs, métodos HTTP, status codes, erros, versionamento, IDs
- `patterns.md` — paginação, filtros, busca, ordenação, expansão, fieldsets, extensibilidade
- `spec-template.md` — referência de schemas Pydantic e padrões FastAPI para garantir que o OpenAPI gerado seja correto
Todos estão no mesmo diretório deste skill.
---
## Fluxo de Trabalho
### Fase 1 — Elicitação de Contexto (nunca pule)
Antes de qualquer implementação, colete com **AskUserQuestion**:
1. **Domínio e recursos** — entidades centrais (ex: pacientes, consultas, exames)
2. **Público** — serviço interno, parceiros ou público?
3. **Autenticação** — nenhuma, API Key, OAuth 2.0/JWT?
4. **Nova ou existente?** — se existente, versão atual e breaking changes aceitáveis?
5. **Escala** — baixo tráfego interno vs. alto volume público?
**Não assuma. Não prossiga sem esse contexto.**
### Fase 2 — Design de Recursos
Leia `conventions.md` e aplique as regras de nomenclatura de URIs.
Mapeie os recursos, seus relacionamentos e sub-recursos.
Sinalize anti-patterns se o usuário propuser algum.
### Fase 3 — Decisões de Design
Apresente ao usuário para aprovação:
- Lista de recursos e relacionamentos
- Formato de ID (ULID padrão — consultar `conventions.md`)
- Estratégia de paginação (offset vs cursor — consultar `patterns.md`)
- Esquema de autenticação
- Justificativa para decisões não óbvias
Peça confirmação antes de prosseguir à implementação.
### Fase 4 — Implementação
Implemente diretamente no FastAPI seguindo a arquitetura em camadas:
1. **Schemas Pydantic** (`app/schemas/`) — Create, Update, Response por recurso
2. **Rotas FastAPI** (`app/api/v1/`) — endpoints com type hints, status codes, tags
3. **Services** (`app/services/`) — lógica de negócio
4. **Repositories** (`app/repositories/`) — acesso a dados
Consulte `conventions.md` para status codes e envelope de erro.
Consulte `patterns.md` para paginação, filtros e expansão.
Consulte `spec-template.md` para padrões de schemas Pydantic.
O FastAPI gera automaticamente:
- OpenAPI 3.1 em `/docs` (Swagger UI) e `/redoc` (ReDoc)
- Schemas JSON a partir dos modelos Pydantic
- Validação de request/response
### Fase 5 — Verificação
Após implementar, verifique:
1. **Convenções** — URIs, status codes, envelopes seguem os padrões
2. **OpenAPI gerado** — acesse `/docs` e confirme que a documentação está correta
3. **Testes** — cenários WHEN/THEN cobertos
4. **Tabela de códigos de erro** — todos os `error.code` documentados
### Fase 6 — Próximos Passos
Pergunte ao usuário:
> "Endpoints implementados! Posso: (1) adicionar novos endpoints, (2) refatorar endpoints existentes, (3) revisar o OpenAPI gerado."
---
## Guardrails
- **Não pule a Fase 1** — sem contexto, não há design
- **Não gere YAML OpenAPI manualmente** — o FastAPI gera a partir do código
- **Não aceite anti-patterns** — sinalize e proponha correção (tabela completa em `conventions.md`)
- **Não invente requisitos** — pergunte se algo não está claro
- **Reutilize schemas** — schemas base compartilhados, nunca duplique inline
- **Documente todos os status codes** por endpoint via `responses={}` no decorator
- **Use type hints** em todos os parâmetros e retornos para garantir OpenAPI corretoMore API Design skills
lark-event
larksuite/cli
Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/chat changes, Approval status changes, Task updates, VC meeting started/joined/ended, Minutes generated, Whiteboard updated, etc.). Use for Lark bots, real-time message processing, long-running subscribers, streaming webhook/push handlers. Supports `--max-events` / `--timeout` bounded runs and a stderr ready-marker contract — designed for AI agents running as subprocesses.
lark-contact
larksuite/cli
飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名,以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。
lark-openapi-explorer
larksuite/cli
飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。

