Open daniherreraa opened 1 week ago
Esta API permite gestionar usuarios y sus modelos, así como procesar archivos CSV para crear modelos predictivos (regresión o clasificación). Se puede realizar la carga de archivos, seleccionar las variables predictoras y la variable objetivo, obtener los resultados del modelo (como el R² y la importancia de las variables), y gestionar usuarios.
openapi: 3.0.0
info:
title: Nebula API
description: API para gestionar usuarios, sus modelos y procesar archivos CSV para crear modelos de regresión o clasificación.
version: 1.0.0
tags:
- name: user
description: Operaciones sobre usuarios en la API
externalDocs:
description: Más información sobre usuarios
url: http://swagger.io
- name: model
description: Gestión de modelos asociados a los usuarios
externalDocs:
description: Más información sobre los modelos
url: http://swagger.io
- name: file
description: Subida y procesamiento de archivos CSV
externalDocs:
description: Más información sobre el procesamiento de archivos
url: http://swagger.io
paths:
/users:
get:
tags:
- user
summary: "Obtener todos los usuarios"
description: "Devuelve una lista de todos los usuarios registrados."
responses:
200:
description: "Lista de usuarios recuperada exitosamente."
post:
tags:
- user
summary: "Crear un nuevo usuario"
description: "Crea un nuevo usuario con la información proporcionada."
requestBody:
description: "Datos del nuevo usuario"
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
example: "John Doe"
email:
type: string
example: "john.doe@example.com"
responses:
201:
description: "Usuario creado exitosamente."
/users/{id}:
get:
tags:
- user
summary: "Obtener detalles de un usuario"
description: "Devuelve la información de un usuario específico por su ID."
parameters:
- name: "id"
in: "path"
required: true
description: "ID del usuario a obtener."
schema:
type: string
responses:
200:
description: "Detalles del usuario."
404:
description: "Usuario no encontrado."
delete:
tags:
- user
summary: "Eliminar un usuario"
description: "Elimina un usuario por su ID."
parameters:
- name: "id"
in: "path"
required: true
description: "ID del usuario a eliminar."
schema:
type: string
responses:
200:
description: "Usuario eliminado exitosamente."
404:
description: "Usuario no encontrado."
/users/{id}/models:
get:
tags:
- model
summary: "Obtener todos los modelos de un usuario"
description: "Devuelve una lista de los modelos creados por un usuario específico."
parameters:
- name: "id"
in: "path"
required: true
description: "ID del usuario cuyos modelos se desean obtener."
schema:
type: string
responses:
200:
description: "Lista de modelos obtenida exitosamente."
404:
description: "Usuario o modelos no encontrados."
post:
tags:
- model
- file
summary: "Crear un modelo a partir de un archivo CSV y las variables seleccionadas"
description: |
Este endpoint permite procesar un archivo CSV para crear un modelo de regresión o clasificación.
El usuario debe especificar:
- **Variables predictoras**: las columnas del CSV que se usarán como entradas para el modelo.
- **Variable de respuesta**: la columna del CSV que se desea predecir.
El archivo CSV es procesado para generar el modelo, y las variables seleccionadas guían su creación.
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: "Archivo CSV que contiene los datos para crear el modelo."
predictor_variables:
type: array
items:
type: string
description: "Lista de columnas que se usarán como variables predictoras."
example: ["age", "income", "education"]
response_variable:
type: string
description: "Columna que se usará como variable de respuesta (lo que se desea predecir)."
example: "house_price"
responses:
201:
description: "Modelo creado exitosamente a partir del CSV y las variables seleccionadas."
/users/{id}/models/{model_id}:
get:
tags:
- model
summary: "Obtener resultados de un modelo específico"
description: "Devuelve los resultados de un modelo, como el coeficiente de determinación (R²) y la importancia de las variables."
parameters:
- name: "id"
in: "path"
required: true
description: "ID del usuario."
schema:
type: string
- name: "model_id"
in: "path"
required: true
description: "ID del modelo cuyos resultados se desean obtener."
schema:
type: string
responses:
200:
description: "Resultados del modelo obtenidos exitosamente."
content:
application/json:
schema:
type: object
properties:
r_squared:
type: number
format: float
description: "Coeficiente de determinación del modelo."
example: 0.85
variable_importance:
type: array
items:
type: object
properties:
variable:
type: string
example: "age"
importance:
type: number
format: float
example: 0.75
model_type:
type: string
description: "Tipo de modelo (regresión o clasificación)."
example: "regression"
404:
description: "Modelo no encontrado."
delete:
tags:
- model
summary: "Eliminar un modelo"
description: "Elimina un modelo específico asociado a un usuario."
parameters:
- name: "id"
in: "path"
required: true
description: "ID del usuario."
schema:
type: string
- name: "model_id"
in: "path"
required: true
description: "ID del modelo a eliminar."
schema:
type: string
responses:
200:
description: "Modelo eliminado exitosamente."
404:
description: "Modelo no encontrado."
components:
schemas:
User:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
Model:
type: object
properties:
id:
type: string
name:
type: string
created_at:
type: string
predictor_variables:
type: array
items:
type: string
response_variable:
type: string
https://editor.swagger.io/