Skip to content

JSenen/Gaticket_API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GATICKET-API

Java Spring Postman Github MySQL Shield Swagger PlantUML Shield Docker


Repositorio de la Api de intercambio de datos entre las aplicaciones GaticketWeb y GaticketApp.

Esta Api se creo con el fin de usarse en las caplicaciones cuya principal función es la gestión de ticket de incidencia por parte de los administradoses en Tecnologías de la Información


API generada para poder trabajar junto con la apliación web GaticketWeb y la apliación para dispositivos Android GaticketApp Para la creación de la Api se ha usado Spring Boot y Java 17


Documentacion Postman PlantUML Shield Swagger

Por medio de Spring Doc se ha documentado los endpoint de la API para poder comprobar las diferentes posibilidades que nos ofrece

Para acceder a la web de la documentación, basta con seguir el siguiente enlace https://jsenen.github.io/Gaticket_API/#/

Igualmente se ha añadido al proyecto la colección POSTMAN utilizada durante su desarrollo. https://github.com/JSenen/Gaticket_API/blob/develop/src/main/java/com/juansenen/gaticket/doc/postman/GATICKET.postman_collection.json

UML

Diseño de la relacion entre clases de toda la Api. Por medio de este diseño, se puede conprobar la relacion entre las clases utilizadas en la Api. Puede comprobarse como se ha realizado una arquitectura de capas, separadas entre si, en las que se desarrolla una comunicación entre componentes.

  • Capa Controller : Define los puntos de acceso y donde se manejan las distintas solicitudes
  • Capa Service: Capa que realiza la lógica de las diferentes peticiones
  • Capa Repository:La cual se comunica con la base de datos. Realizando las distintas peticiones CRUD img.png

DOCKER Docker MySQL Shield

Para facilitar la puesta en producción de la Api, se ha introducido un fichero Docker File asi como Docker Compose, por medio del cual se puede generar una imagen Docker de la Api. Como puede observarse en el fichero Docker Compose, se ha creado una persistencia para la base de datos MySql. Lo que nos permite mantener los datos en el contenedor generado por la imagen Docker.

Cualquiera que quiera hacer uso de la Api, deberá actualizar el fchero de la carpeta sql con su propia base.

Para poner el marcha la Api, basta con navegar hasta el directorio raiz de la aplicación y una vez abierto el programa Docker Desktop de nuestro equipo local, ejecutar el comando

docker compose up

El cual nos creará una imagen de la api spring boot y de una base de datos MySql. Ambas unidas en la misma imagen.

Para el acceso a la base de datos dentro del contenedor usaremos

docker exec -it [nombre de la imagen] bash

Y una vez dentro del contenedor

mysql -u root -p

Siendo root la clave para acceder

# Imagen base de java a usar
FROM openjdk:17
VOLUME /main-app
# Archivo para el contenedor
ADD target/gaticket-0.0.1-SNAPSHOT.jar app.jar
# Puerto se expone
EXPOSE 8080
# Comandos a ejecutar al lanzarlo
ENTRYPOINT ["java", "-jar","/app.jar"]

version: "3.7"

services:
  api_service:
    build: .
    restart: always
    ports:
      - 8080:8080
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql_db:3306/gaticketdb
      SPRING_DATASOURCE_USERNAME: myuser
      SPRING_DATASOURCE_PASSWORD: mypass
    depends_on:
      - mysql_db
    networks:
      - mynetwork
    command: sh -c './wait-for mysql_db:3306 -- mvn spring-boot:run'

  mysql_db:
    image: "mysql:8.0"
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_DATABASE: gaticketdb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypass
      MYSQL_ROOT_PASSWORD: root
    networks:
      - mynetwork
    volumes:
      - /Users/JSenen/IdeaProjects/gaticket/sql:/var/lib/mysql

networks:
  mynetwork:
    driver: bridge

About

API for control systems by a group of IT

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages