108 lines
2.9 KiB
Markdown
108 lines
2.9 KiB
Markdown
# 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.
|
|
|
|
```sh
|
|
docker compose up --build -d
|
|
```
|
|
|
|
Comprobamos que se han levantado correctamente bien los 3 contenedores de la aplicación:
|
|
|
|
```sh
|
|
docker ps
|
|
```
|
|
|
|
Y deberiamos ver algo parecido a :
|
|
|
|
- ogcore-nginx
|
|
- ogcore-php
|
|
- ogcore-database
|
|
|
|
|
|
### Instalamos dependencias
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
docker exec ogcore-php php bin/console doctrine:migrations:migrate --no-interaction
|
|
```
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
http://127.0.0.1:8080/docs
|
|
```
|
|
|
|
Para poder autenticarte, necesitas un token JWT. Para obtenerlo, accedemos al endpoint de autenticación "auth/login":
|
|
|
|

|
|

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

|
|
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
docker exec ogcore-php php bin/console doctrine:database:drop --force
|
|
docker exec ogcore-php php bin/console doctrine:database:create
|
|
```
|