Prueba técnica para puesto senior de backend en clubhub
Se desarrollo un servicio web RESTful escrito en el lenguaje de programación Go. Este proyecto es parte de una prueba técnica para una vacante de senior de backend en clubhub, donde se necesitaba diseñar y construir un servicio que permita la administración de franquicias hoteleras, debe permitir almacenar, consultar y actualizar la información. Esta prueba contribuyo a mi proceso de aprendizaje en el lenguaje y la comprensión de la Arquitectura Hexagonal implementada en Go.
Utilice Chi como enrutador HTTP, PostgreSQL como base de datos con pq, Tambien swagger, swag para generar la documentacion en swagger y goquery como consultaen documento HTML.
Por otra parte se usaron los siguientes patrones de diseño.
- Pattern Adapter
- Dependency Injection
- Pattern Repository
- Pattern Factory
En primer lugar se debe clonar el repositorio donde se encuentra el proyecto. Luego ubicarse dentro de la carpeta de clubhub. Después vamos a construir ejecutar Docker. Asegúrese de que tiene docker instalado en su máquina.
- Clonamos el repositorio
git clone https://github.com/Geovanny0401/clubhub
- Nos ubicamos dentro de la carpeta
cd clubhub
- Comando para subir Imagen
docker-compose up --build -d
- Comando para bajar la Imagen
docker-compose down
- Esta paso es opcional, despues de ejecutarlo hacemos el paso # 3
chmod +x run.sh
./run.sh
La documentación de la API se encuentra en el directorio docs/
. Para ver la documentación, abra el navegador y vaya a http://localhost:8001/swagger/index.html
. La documentación se genera utilizando swaggo con el middleware gin-swagger.
Este el diseño de la Arquitectura Hexagonal en la aplicación como esta compuesta.
- Path :
/clubhub
- Method:
GET
- Response:
200
Url:
curl --request GET \
--url 'http://localhost:8001/clubhub?=' \
--header 'User-Agent: insomnia/8.6.0'
- Path :
/clubhub/address={address}
- Method:
GET
- Response:
200
Url:
curl --request GET \
--url 'http://localhost:8001/clubhub/address=marriott.com?=' \
--header 'User-Agent: insomnia/8.6.0'