Skip to content

jesusflsa/forohub-alura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forohub API

Forohub es una API desarrollada en Java Spring para gestionar foros de discusión. Utiliza diversas librerías y herramientas de Spring para ofrecer una API segura y robusta.

Tecnologías Utilizadas

  • Java 17
  • Maven
  • Spring Boot

Librerías

  • Lombok
  • Spring Web
  • Spring Boot DevTools
  • Spring Data JPA
  • Flyway Migration
  • MySQL Driver
  • Validation
  • Spring Security

Endpoints

Autenticación

  • POST /login
    • Descripción: Autentica un usuario.
    • Body:
      {
        "username": "string",
        "password": "string"
      }
    • Respuesta: Retorna un JWT.

Tópicos

Requieren autenticación con JWT Bearer Token

  • GET /topicos

    • Descripción: Retorna la lista de tópicos.
    • Respuesta:
      [
        {
          "id": "Long",
          "id_usuario": "Long",
          "titulo": "String",
          "mensaje": "String",
          "curso": "String",
          "fecha_creacion": "Date"
        },
        ...
      ]
  • POST /topicos

    • Descripción: Crea un nuevo tópico.
    • Body:
      {
        "id_usuario": "Long",
        "titulo": "String",
        "mensaje": "String",
        "curso": "String"
      }
    • Respuesta:
      {
        "id": "Long",
        "id_usuario": "Long",
        "titulo": "String",
        "mensaje": "String",
        "curso": "String",
        "fecha_creacion": "Date"
      }
  • GET /topicos/{id}

    • Descripción: Retorna un tópico específico.
    • Respuesta:
      {
        "id": "Long",
        "id_usuario": "Long",
        "titulo": "String",
        "mensaje": "String",
        "curso": "String",
        "fecha_creacion": "Date"
      }
  • PUT /topicos/{id}

    • Descripción: Actualiza un tópico específico.
    • Body:
      {
        "titulo": "String",
        "mensaje": "String",
        "curso": "String"
      }
    • Respuesta:
      {
        "id": "Long",
        "id_usuario": "Long",
        "titulo": "String",
        "mensaje": "String",
        "curso": "String",
        "fecha_creacion": "Date"
      }
  • DELETE /topicos/{id}

    • Descripción: Elimina un tópico específico.
    • Respuesta: No retorna nada.

Configuración del Proyecto

Para construir y ejecutar este proyecto, asegúrate de tener instalado Java 17 y Maven. Sigue los pasos a continuación:

  1. Clona el repositorio:

    git clone https://github.com/jesusflsa/forohub-alura.git
    cd forohub-alura
  2. Configura la base de datos MySQL y actualiza las propiedades en src/main/resources/application.properties.

    spring.application.name=forohub
    spring.datasource.url = jdbc:mysql://localhost/forohub_api
    spring.datasource.username=root
    spring.datasource.password=root
    
    spring.jpa.show-sql=true
    spring.jpa.properties.hibernate.format_sql=true
    
    server.error.include-stacktrace=never
    
    api.security.secret=123456
  3. Ejecuta las migraciones de Flyway:

    mvn flyway:migrate
  4. Compila y ejecuta la aplicación:

    mvn spring-boot:run

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages