151 lines
3.3 KiB
YAML
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'
|