Skip to content
Back to skills

Openapi Swagger Nestjs

ASecurity

Documentación de APIs REST con OpenAPI 3.0 y Swagger UI en NestJS usando @nestjs/swagger. Usar PROACTIVAMENTE cuando se escriban controllers, DTOs, o endpoints que necesiten documentación, cuando se configure el módulo Swagger, cuando se añadan decoradores de API a propiedades de DTOs, o cuando se genere un contrato OpenAPI para el frontend o equipos externos. Activar siempre que aparezcan las palabras clave: Swagger, OpenAPI, @ApiProperty, @ApiOperation, @ApiResponse, @ApiTags, @ApiBearerAut...

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
developmenttypescriptapifrontendsecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill openapi-swagger-nestjs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openapi Swagger Nestjs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openapi Swagger Nestjs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-openapi-swagger-nestjs/badge)](https://www.skillsdirectory.com/skills/aibot88-openapi-swagger-nestjs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openapi-swagger-nestjs
description: >
  Documentación de APIs REST con OpenAPI 3.0 y Swagger UI en NestJS usando @nestjs/swagger.
  Usar PROACTIVAMENTE cuando se escriban controllers, DTOs, o endpoints que necesiten
  documentación, cuando se configure el módulo Swagger, cuando se añadan decoradores de
  API a propiedades de DTOs, o cuando se genere un contrato OpenAPI para el frontend
  o equipos externos. Activar siempre que aparezcan las palabras clave: Swagger, OpenAPI,
  @ApiProperty, @ApiOperation, @ApiResponse, @ApiTags, @ApiBearerAuth, SwaggerModule,
  DocumentBuilder, @nestjs/swagger, swagger.json, api-docs, documentar endpoint,
  contrato de API, o schema de respuesta.
---

# OpenAPI / Swagger en NestJS — Documentación de API HADA

Guía completa para documentar la API REST de HADA con OpenAPI 3.0 y Swagger UI
usando `@nestjs/swagger`. Cubre configuración, decoradores en controllers y DTOs,
seguridad JWT, y generación del contrato OpenAPI para el equipo de frontend móvil.

## Referencias disponibles

- `references/setup.md` — Instalación, SwaggerModule, DocumentBuilder, entornos
- `references/decorators.md` — Todos los decoradores: @ApiTags, @ApiOperation, @ApiResponse, @ApiProperty
- `references/dtos.md` — DTOs documentados de los módulos principales de HADA
- `references/security.md` — @ApiBearerAuth, esquema JWT en Swagger UI

---

## Cuándo usar cada referencia

| Tarea                                   | Referencia      |
| --------------------------------------- | --------------- |
| Configurar Swagger por primera vez      | `setup.md`      |
| Documentar un controller o endpoint     | `decorators.md` |
| Documentar DTOs de request/response     | `dtos.md`       |
| Configurar autenticación JWT en Swagger | `security.md`   |

---

## Reglas críticas (siempre en contexto)

### 1. Todo endpoint del MVP debe estar documentado — es entregable obligatorio

```typescript
// ✅ Mínimo requerido por endpoint
@ApiOperation({ summary: 'Reservar un regalo' })
@ApiResponse({ status: 200, type: ReserveGiftResponseDto })
@ApiResponse({ status: 403, description: 'No perteneces al círculo de esta lista' })
@ApiResponse({ status: 409, description: 'El regalo ya está reservado' })
```

### 2. Todos los DTOs de respuesta deben tener @ApiProperty en sus campos

```typescript
// ✅ DTO documentado
export class GiftStatusResponseDto {
  @ApiProperty({ example: 'uuid-gift-123' })
  giftId: string;

  @ApiProperty({ enum: ['AVAILABLE', 'RESERVED', 'RECEIVED'] })
  estado: GiftStatus;
  // ⚠️ NUNCA añadir reservedById aquí — invariante de privacidad
}
```

### 3. @ApiHideProperty para campos que NUNCA deben exponerse en el contrato

```typescript
export class InternalReservationDto {
  @ApiHideProperty()  // ← No aparece en Swagger ni en el contrato OpenAPI
  reservedById: string;
}
```

### 4. Generar el JSON del contrato en CI para que el equipo móvil lo consuma

```typescript
// scripts/generate-openapi.ts
const app = await NestFactory.create(AppModule);
const document = SwaggerModule.createDocument(app, config);
writeFileSync('./docs/openapi.json', JSON.stringify(document, null, 2));
```

---

## Fuentes y documentación oficial

- **@nestjs/swagger Docs**: https://docs.nestjs.com/openapi/introduction
- **NestJS OpenAPI — Decorators**: https://docs.nestjs.com/openapi/decorators
- **NestJS OpenAPI — Types and Parameters**: https://docs.nestjs.com/openapi/types-and-parameters
- **NestJS OpenAPI — Security**: https://docs.nestjs.com/openapi/security
- **OpenAPI 3.0 Specification**: https://swagger.io/specification/
- **Swagger UI**: https://swagger.io/tools/swagger-ui/

Files in this skill

  • SKILL.md3.6 KB
  • source.json1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.