Skip to content

exdevutem/api-exdev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API ExDev

Esta es una API multipropósitos del club ExDev. La idea es que sea un sistema monolítico que se preocupe de todos los procesos que ocurren en el club, y que todos los sistemas que se creen a futuro beban de esta, y sean solo interfaces bonitas para lo que ocurre acá.

Preventivamente se decidició utilizar Rust con el framework Actix para este propósito, pero aún no es una idea fija.

Documentación

Existe una documentación hecha con rustdocs que puede ser compilada con cargo. Para poder leerla, ejecuta el siguiente comando:

cargo doc --open

Instrucciones para montar

Se necesita tener cargo, rust y todo el toolchain relacionado. Puedes instalar este toolchain siguiendo estas instrucciones.

La siguiente dependencia importante es SQLite3. Necesitas tener un archivo de ambiente que especifique la URL de conexion de la base de datos; o sea, el archivo donde se guardarán los datos.

La solución más sencilla es la creación de un archivo llamado data.db:

touch data.db # Archivo de base de datos SQLite3.
cp .env.example .env # Archivo de ambiente por defecto.

El último paso es correr las migraciones necesarias. Primero, instala la herramienta de terminal de SQLx con el siguiente comando:

cargo install sqlx-cli

Hecho esto, puedes correr las migraciones con el comando:

sqlx migrate run

Con el toolchain instalado, SQLite3 listo, y las migraciones hechas, simplemente corre el comando siguiente, y empieza a modificar el código a tu gusto:

cargo run

Esto es opcional! pero si te es cómodo que recompile el código conforme estás modificándolo, puedes hacerlo con cargo watch. Instálalo con el siguiente comando:

cargo install cargo-watch

Luego, puedes utilizarlo con un comando como el siguiente:

cargo watch -c -x run

About

API General / Multipropósito del ExDev

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages