From f37e9fa9961e1c9be9a67fa2c73e4b6210062250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Guti=C3=A9rrez?= Date: Wed, 22 May 2024 05:36:08 -0600 Subject: [PATCH] Servidor de OpenAPI y dos ejemplos --- README.md | 6 +++- empleados.yaml | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++ example.yaml | 12 ++++++++ server.js | 14 +++++++++ 4 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 empleados.yaml create mode 100644 example.yaml create mode 100644 server.js diff --git a/README.md b/README.md index d8e655f..2d8e38f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ -# openapi-demo +# **Código para ejecutar un especificación en OpenAPI** + +## Instalación + +Utilice los componentes swa Ejemplo de un servicio de OpenAPI con swagger \ No newline at end of file diff --git a/empleados.yaml b/empleados.yaml new file mode 100644 index 0000000..bb28b67 --- /dev/null +++ b/empleados.yaml @@ -0,0 +1,77 @@ +openapi: 3.0.0 +info: + title: API de Ejemplo de Usuarios + description: API para administrar usuarios + version: 1.0.0 +servers: + - url: https://miapp.midominio.com/tienda/ +paths: + /usuarios: + post: + summary: Agregar un nuevo usuario + description: Crea un nuevo usuario en la aplicación. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nombre: + type: string + edad: + type: integer + responses: + '201': + description: Usuario creado con éxito + '400': + description: Error en la solicitud + + /usuarios/{id}: + delete: + summary: Borrar un usuario existente + description: Elimina un usuario de la aplicación por su ID. + parameters: + - in: path + name: id + required: true + description: ID del usuario a borrar + schema: + type: integer + format: int64 + responses: + '204': + description: Usuario eliminado con éxito + '404': + description: Usuario no encontrado + + put: + summary: Actualizar un usuario existente + description: Actualiza la información de un usuario existente en la aplicación por su ID. + parameters: + - in: path + name: id + required: true + description: ID del usuario a actualizar + schema: + type: integer + format: int64 + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + nombre: + type: string + edad: + type: integer + responses: + '200': + description: Usuario actualizado con éxito + '400': + description: Error en la solicitud + '404': + description: Usuario no encontrado + diff --git a/example.yaml b/example.yaml new file mode 100644 index 0000000..44a29bf --- /dev/null +++ b/example.yaml @@ -0,0 +1,12 @@ +openapi: 3.0.0 +info: + version: 1.0.0 + title: Sample API + description: A sample API to illustrate OpenAPI concepts +paths: + /list: + get: + description: Returns a list of stuff + responses: + '200': + description: Successful response diff --git a/server.js b/server.js new file mode 100644 index 0000000..3a12854 --- /dev/null +++ b/server.js @@ -0,0 +1,14 @@ +const YAML = require('yamljs') +const express = require('express'); +const swaggerUi = require('swagger-ui-express'); +const openApiDocument = YAML.load('./empleados.yaml'); + +const app = express(); + +app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(openApiDocument)); + +const PORT = process.env.PORT || 8080; +app.listen(PORT, () => { + console.log(`Servidor corriendo en http://localhost:${PORT}`); +}); +