# Core Dto Rs

> Criar DTOs de aplicação Rust (Input/Output) com serde. Usar quando o pedido envolver contratos de API na camada application.

- Skill: `eskcti/core-dto-rs` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add eskcti/core-dto-rs`
- Raw SKILL.md: https://api.skillmd.com/api/skills/eskcti/core-dto-rs/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: EskCti (https://skillmd.com/u/eskcti)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/eskcti/core-dto-rs

---


# Core DTO (Rust)

## Overview

DTOs em `modules::<bc>::application::dto.rs` ou arquivos dedicados — `CreateCustomerInput`, `CustomerOutput`.

## Guidelines

- Ler `references/dto-pattern-rs.md` antes de implementar.
- `Deserialize` para entrada HTTP; `Serialize` para resposta.
- Sem lógica de negócio; validação de formato leve OK, regras de domínio nos VOs.
- Mapper explícito para a entidade (`to_entity`) e para o DTO (`CustomerOutput::from`).
- Nomes com sufixo `Input` / `Output`.

## Workflow

1. Definir campos do contrato HTTP.
2. Criar `dto.rs` com derives serde.
3. Implementar mappers (`to_entity` / `from`).
4. Usar no handler (`backend-controller-rs`) e nas queries (`core-query-cqrs-rs`).

## References

- `references/dto-pattern-rs.md` — exemplo completo com serde + mappers + regras NO FAZER

## Global Standards

- Consultar `../skills-standards.md` seção **Rust**.
