Files
openapi-clean-arch-gen/example-swagger.yaml
Blas Santome Ocampo 5ff88d8cf6 first commit
2026-03-23 09:35:15 +01:00

151 lines
3.3 KiB
YAML

openapi: 3.0.1
info:
title: Example API
description: API de ejemplo para probar el generador
version: 1.0.0
tags:
- name: User
description: Operaciones de usuario
- name: Product
description: Operaciones de productos
paths:
/v1/users:
get:
tags:
- User
summary: Obtener lista de usuarios
operationId: getUsers
parameters:
- name: search
in: query
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
post:
tags:
- User
summary: Crear usuario
operationId: createUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/UserSchema'
/v1/users/{id}:
get:
tags:
- User
summary: Obtener usuario por ID
operationId: getUserById
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserSchema'
delete:
tags:
- User
summary: Eliminar usuario
operationId: deleteUser
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'204':
description: No Content
/v1/products:
get:
tags:
- Product
summary: Obtener lista de productos
operationId: getProducts
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProductResponse'
components:
schemas:
UserSchema:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Juan Pérez
email:
type: string
example: juan@example.com
active:
type: boolean
example: true
CreateUserRequest:
type: object
required:
- name
- email
properties:
name:
type: string
example: Juan Pérez
email:
type: string
example: juan@example.com
UserResponse:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/UserSchema'
ProductSchema:
type: object
properties:
id:
type: integer
example: 100
name:
type: string
example: Laptop HP
price:
type: number
format: float
example: 599.99
ProductResponse:
type: object
properties:
products:
type: array
items:
$ref: '#/components/schemas/ProductSchema'