https://custom-sepomex.herokuapp.com/
El proyecto surge ante la necesidad de tener un servicio REST que sea capaz de entregar la entidad federativa y colonia a partir del código postal. Si bien SEPOMEX tiene un portal en linea para consultar esta información, contar con un micro-servicio haria posible integrarlo de forma eficiente con una aplicación web o móvil.
Con base en lo anterior el proyecto tiene sólo un inbound rest api de tipo GET, lo puedes consultar mandando una petición a la siguiente ruta:
Toda la información devuelta por el servicio fue tomada directamente de SEPOMEX
Request
curl https://custom-sepomex.herokuapp.com/cp/56550
Response
{"codigoPostal":"56550","colonias":["Emiliano Zapata","Derramadero"],"estao":"México","municipio":"Ixtapaluca"}
Esta sección detalla los pasos que debes seguir para hacer el setup del proyecto en tu ambiente local usando Docker Compose
- Clona el repositorio
git clone git@github.com:edgarhurtado27/custom-sepomex.git
- Construye la imagen e instancia un contenedor Docker
docker-compose up -d
- Valida que los contenedores web-sepomex y mongo-sepomex estan online
docker ps
- Ejecuta el seeder para poblar la base de datos
docker exec -it web-sepomex sh
python customsepomex/seeder/curlSepomex.py
Una vez que el seeder finalice de importar la información, puedes realizar consultas de forma local
Request
curl localhost:5000/cp/40506
Response
{"codigoPostal": "40506", "colonias": ["La Sidra (Puente Arroyo Seco)", "El Veladero", "Ojo de Agua", "Palapa"], "estado": "Guerrero", "municipio": "Arcelia" }
No recomiendo usar la aplicación desplegada en Heroku para tus aplicaciones en ambientes productivos, las instancias en las que está desplegada tanto el servicio REST como la base de datos son gratuitas, por lo que su poder de procesamiento es limitado. En su lugar es preferible descargar el proyecto y desplegarlo en tus propios servidores/instancias, donde sólo tú o tu compañía tengan acceso.
Este es mi primer proyecto con Python por lo que seguramente no seguí las mejores prácticas del lenguaje, así que las contribuciones son bienvenidas.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request