ogcore/README.md

2.9 KiB

ogCore project

Descripción

ogCore es el servicio central de OpenGnsys, diseñado para proporcionar funcionalidades a través de una API RESTful. Esta herramienta utiliza tecnología PHP, aprovechando el framework Symfony y el ORM Doctrine para gestionar la base de datos. A continuación, se detallan los pasos necesarios para desplegar el proyecto en un entorno de desarrollo.

Versiones y tecnologías utilizadas

  • PHP 8.3
  • Symfony 6.4
  • Doctrine 2.19
  • API Platform 3.2
  • MariaDB 10.11

Requisitos

Antes de comenzar, asegúrate de tener los siguientes requisitos:

  • Docker
  • Docker compose

Instalación

Desplegar contenedores

Para que no haya conflictos entre los puertos, asegúrate de que no tienes ningún servicio corriendo en los puertos 8080 y 3306.

docker compose up --build -d

Comprobamos que se han levantado correctamente bien los 3 contenedores de la aplicación:

docker ps

Y deberiamos ver algo parecido a :

  • ogcore-nginx
  • ogcore-php
  • ogcore-database

Instalamos dependencias

docker exec ogcore-php composer install
docker exec ogcore-php php bin/console lexik:jwt:generate-keypair --overwrite

Comprobamos, que el contenedor de Nginx, tiene el puerto 8080 levantado correctamente, asi que tan solo tendremos que acceder a la siguiente URL:

http://127.0.0.1:8080/docs

Si todo ha ido bien, deberiamos ver la documentación de la API de ogCore.

Para poder actualizar la base de datos:

Para inicializar la base de datos:

docker exec ogcore-php php bin/console doctrine:migrations:migrate --no-interaction
docker exec ogcore-php php bin/console doctrine:fixtures:load --no-interaction
docker exec ogcore-php php bin/console app:load-default-user-groups

UX Api Platform

Api Platform proporciona una interfaz de usuario para interactuar con la API de ogCore. Para acceder a la interfaz de usuario, accede a la siguiente URL:

http://127.0.0.1:8080/docs

Para poder autenticarte, necesitas un token JWT. Para obtenerlo, accedemos al endpoint de autenticación "auth/login":

img.png img.png Obtenemos el token y lo introducimos en la interfaz de usuario de Api Platform de la siguiente manera:

img.png

Ahora, ya podemos interactuar con la API de ogCore. Para comprobar que todo está correcto, podemos fijarnos en los headers de las llamadas Curl, y ver que el token JWT se ha introducido correctamente.

Test

Para ejecutar los test, ejecutamos el siguiente comando:

docker compose exec php bin/phpunit    

Reiniciar base de datos

Es posible que en momentos de desarrollo, sea necesario volver a cargar la base de datos y actualizar los esquemas de la misma, para ello, ejecutamos el siguiente comando:

docker exec ogcore-php php bin/console doctrine:database:drop --force
docker exec ogcore-php php bin/console doctrine:database:create