Mejias99 /
ejerciciosJavascript
Repositorio de ejercicios de JavaScript para práctica y aprendizaje, incluyendo desafíos y proyectos interactivos
Loading repository data…
JeanLarez / repository
Desafíos y ejercicios. Construcción de aplicaciones de servidor (back-end). Creación de servicios web que proveen datos a aplicaciones web front-end, aplicaciones de escritorio como también aplicaciones móviles. Creación y administración de bases de datos SQL y noSQL, e integradas éstas a los servicios web.
Desafíos y ejercicios. Construcción de aplicaciones de servidor (back-end). Creación de servicios web que proveen datos a aplicaciones web front-end, aplicaciones de escritorio como también aplicaciones móviles. Creación y administración de bases de datos SQL y noSQL, e integradas éstas a los servicios web.
Esta es una API de ejemplo que utiliza Node.js, Express y Sequelize para gestionar posts, comentarios, usuarios, etiquetas y categorías. A continuación, encontrarás la documentación para utilizar esta API.




Asegúrate de tener Node.js y MySQL instalados en tu sistema antes de ejecutar la aplicación. Además, crea una base de datos MySQL y configura las credenciales en un archivo .env en la raíz del proyecto como se muestra en el siguiente ejemplo.
.envDB_HOST=localhost
DB_PORT=3000
DB_NAME=mi_basededatos(en este caso Posts)
DB_USER=mi_usuario(root)
DB_PASSWORD=mi_contraseña_secreta_de_mysql
Clona este repositorio:
git clone https://github.com/urldelproyecto...
Navega al directorio del proyecto:
cd posts...
Instala las dependencias:
npm install
Inicia el servidor:
npm start
La API estará disponible en http://localhost:3000.
A continuación, se detallan los endpoints disponibles y cómo utilizarlos:
/api/categoriasGETCódigo: 200 OK
Ejemplo de Respuesta:
[
{
"Categoria_id": 1,
"Nombre_categoria": "Tecnología"
},
{
"Categoria_id": 2,
"Nombre_categoria": "Deportes"
}
]
URL: /api/categorias
Método: POST
Cuerpo de la Petición:
{
"Nombre_categoria": "Ciencia"
}
Respuesta Exitosa:
Código: 201 Created
Ejemplo de Respuesta:
{
"Categoria_id": 3,
"Nombre_categoria": "Ciencia"
}
/api/categoria/:idGETCódigo: 200 OK
Ejemplo de Respuesta:
{
"Categoria_id": 1,
"Nombre_categoria": "Tecnología"
}
URL: /api/categoria/:id
Método: PUT
Cuerpo de la Petición:
{
"Nombre_categoria": "Tecnología e Innovación"
}
Respuesta Exitosa:
Código: 200 OK
Ejemplo de Respuesta:
{
"Categoria_id": 1,
"Nombre_categoria": "Tecnología e Innovación"
}
/api/categoria/:idDELETECódigo: 200 OK
Ejemplo de Respuesta:
{
"mensaje": "Categoría eliminada con éxito"
}
/api/comentariosGETCódigo: 200 OK
Ejemplo de Respuesta:
[
{
"Comentario_id": 1,
"Contenido_comentario": "Excelente artículo",
"Usuario_ID": 1,
"Post_ID": 1
},
{
"Comentario_id": 2,
"Contenido_comentario": "Gracias por compartir",
"Usuario_ID": 2,
"Post_ID": 1
}
]
URL: /api/comentarios
Método: POST
Cuerpo de la Petición:
{
"Contenido_comentario": "Gran publicación",
"Usuario_ID": 1,
"Post_ID": 2
}
Respuesta Exitosa:
Código: 201 Created
Ejemplo de Respuesta:
{
"Comentario_id": 3,
"Contenido_comentario": "Gran publicación",
"Usuario_ID": 1,
"Post_ID": 2
}
/api/comentario/:idGETCódigo: 200 OK
Ejemplo de Respuesta:
{
"Comentario_id": 1,
"Contenido_comentario": "Excelente artículo",
"Usuario_ID": 1,
"Post_ID": 1
}
URL: /api/comentario/:id
Método: PUT
Cuerpo de la Petición:
{
"Contenido_comentario": "Gran artículo"
}
Respuesta Exitosa:
Código: 200 OK
Ejemplo de Respuesta:
{
"Comentario_id": 1,
"Contenido_comentario": "Gran artículo",
"Usuario_ID": 1,
"Post_ID": 1
}
/api/comentario/:idDELETECódigo: 200 OK
Ejemplo de Respuesta:
{
"mensaje": "Comentario eliminado con éxito"
}
/api/etiquetasGETCódigo: 200 OK
Ejemplo de Respuesta:
[
{
"Etiqueta_id": 1,
"Nombre_etiqueta": "Node.js"
},
{
"Etiqueta_id": 2,
"Nombre_etiqueta": "Express"
}
]
URL: /api/etiquetas
Método: POST
Cuerpo de la Petición:
{
"Nombre_etiqueta": "Sequelize"
}
Respuesta Exitosa:
Código: 201 Created
Ejemplo de Respuesta:
{
"Etiqueta_id": 3,
"Nombre_etiqueta": "Sequelize"
}
/api/etiqueta/:idGETCódigo: 200 OK
Ejemplo de Respuesta:
{
"Etiqueta_id": 1,
"Nombre_etiqueta": "Node.js"
}
URL: /api/etiqueta/:id
Método: PUT
Cuerpo de la Petición:
{
"Nombre_etiqueta": "Node.js y Express"
}
Respuesta Exitosa:
Código: 200 OK
Ejemplo de Respuesta:
{
"Etiqueta_id": 1,
"Nombre_etiqueta": "Node.js y Express"
}
/api/etiqueta/:idDELETECódigo: 200 OK
Ejemplo de Respuesta:
{
"mensaje": "Etiqueta eliminada con éxito"
}
Post_etiquetasLa tabla Post_etiquetas se utiliza para mantener un registro de las relaciones entre las publicaciones y las etiquetas. Esta tabla es esencial para implementar una relación de muchos a muchos entre las publicaciones y las etiquetas, ya que permite asociar múltiples etiquetas con múltiples publicaciones.
| Campo | Tipo | Descripción |
|---|---|---|
id | Entero | Identificador único de la relación. |
post_id | Entero | Clave foránea que hace referencia a la tabla Publicaciones. |
etiqueta_id | Entero | Clave foránea que hace referencia a la tabla Etiquetas. |
post_id: Esta columna se relaciona con la tabla Publicaciones y representa la publicación a la que se asocia una etiqueta.etiqueta_id: Esta columna se relaciona con la tabla Etiquetas y representa la etiqueta asociada a una publicación.Supongamos que tenemos las siguientes entradas en la tabla Post_etiquetas:
| id | post_id | etiqueta_id |
|---|---|---|
| 1 | 101 | 5 |
| 2 | 102 | 6 |
| 3 | 103 | 5 |
Esto indica que:
id 101 está asociada a la etiqueta con id 5.id 102 está asociada a la etiqueta con id 6.id 103 está asociada a la etiqueta con id 5.Esta relación permite etiquetar múltiples publicaciones con las mismas etiquetas y realizar consultas relacionadas con las etiquetas asociadas a una publicación específica o las publicaciones asociadas a una etiqueta.
Aquí se describen los endpoints relacionados con esta funcionalidad.
URL: /api/posts_etiquetas
Método: POST
Cuerpo de la Petición:
{
"Post_ID": 1,
"Etiqueta_ID": 2
}
Respuesta Exitosa:
Código: 200 OK
Ejemplo de Respuesta:
{
"Post_etiqueta_ID": 1,
"Post_ID": 1,
"Etiqueta_ID": 2
}
/api/posts_etiquetasGETCódigo: 200 OK
Ejemplo de Respuesta:
[
{
"Post_etiqueta_ID": 1,
"Post_ID": 1,
"Etiqueta_ID": 2
},
{
"Post_etiqueta_ID": 2,
"Post_ID": 2,
"Etiqueta_ID": 1
}
]
URL: /api/post_etiqueta/:id
Método: PUT
Cuerpo de la Petición:
{
"Post_ID": 3,
"Etiqueta_ID": 4
}
Respuesta Exitosa:
Código: 200 OK
Ejemplo de Respuesta:
{
"Post_etiqueta_ID": 1,
"Post_ID": 3,
"Etiqueta_ID": 4
}
/api/post_etiqueta/:idDELETECódigo: 200 OK
Ejemplo de Respuesta:
{
"message": "Registro de Post_Etiquetas eliminado exitosamente"
}
/api/usuariosGETCódigo: 200 OK
Ejemplo de Respuesta:
[
{
"Usuario_id": 1,
"Nombre_usuario": "usuario1",
"Correo_electronico": "usuario1@example.com"
},
{
"Usuario_id": 2,
"Nombre_usuario": "usuario2",
"Correo_electronico": "usuario2@example.com"
}
]
URL: /api/usuarios
Método: POST
Cuerpo de la Petición:
{
"Nombre_usuario": "usuario3",
"Correo_electronico": "usuario3@example.com"
}
Respuesta Exitosa:
Código: 201 Created
Ejemplo de Respuesta:
{
"Usuario_id": 3,
"Nombre_usuario": "usuario3",
"Correo_electronico": "usuario3@example.com"
}
/api/usuario/:idGETCódigo: 200 OK
Ejemplo de Respuesta:
{
"Usuario_id": 1,
"Nombre_usuario": "usuario1",
"Correo_electronico": "usuario1@example.com"
}
URL: /api/usuario/:id
Método: PUT
Cuerpo de la Petición:
{
"Nombre_usuario": "nuevo_nombre_usuario"
}
Respuesta Exitosa:
Código: 200 OK
Ejemplo de Respuesta:
{
"Usuario_id": 1,
"Nombre
Selected from shared topics, language and repository description—not editorial ratings.
Mejias99 /
Repositorio de ejercicios de JavaScript para práctica y aprendizaje, incluyendo desafíos y proyectos interactivos
Alexandritax /
Con este desafío propuesto, se busca determinar si el candidato está en condiciones de interactuar con una base de datos a través de una aplicación web, utilizando cliente y servidor. Este ejercicio no tiene ningún fin comercial ni estratégico, sólo se medirá las habilidades del postulante.
Mayer-04 /
Ejercicios y desafíos de lógica de programación en JavaScript para mejorar habilidades de programación y pensamiento lógico 🧠
MaximilianoAntonioOrtiz /
Desafíos y ejercicios prácticos en JavaScript — Curso Santander
Bedoya2505 /
Contiene ejercicios de clase, desafíos y entregas de proyecto del curso de javascript
GonzaBolognese /
JavaScript: Ejercicios de lógica con desafíos matemáticos, ramificación y recursividad para fortalecer habilidades de programación. 💡🚀