Del Concepto a la Idea III: Del TXT al API – Open IBAN Registry



En los artículos anteriores el objetivo era llevar una idea  del concepto a algo funcional usando FastAPI, y después cómo empaquetarla con Docker. Este tercer capítulo cierra el recorrido: llevar una idea hasta algo usable, público y visible, aunque no sea producción ni lo pretenda.

La idea original de esta serie era trabajar con catálogos financieros. Pero como suele pasar en la vida (y más en el desarrollo), el camino cambió. Investigando sobre validación de cuentas bancarias me topé con una duda muy concreta:

¿De dónde salen realmente las reglas para validar un IBAN?

No desde el “cómo lo valida un banco”, sino desde el origen . Buscando documentación llegué al IBAN Registry, un archivo oficial mantenido por SWIFT bajo el estándar ISO 13616.

Lo curioso fue descubrir que todo ese conocimiento vive en algo tan simple como un archivo TXT.

Del TXT al API

El camino no fue planeado, fue más bien orgánico:

  • Primero convertí el TXT a Excel, solo para entender qué información contenía.
  • Después empecé a manipular los datos con código.
  • Y eventualmente la pregunta fue inevitable: ¿por qué no exponer esto como un API?

Así nació Open IBAN Registry: un proyecto open source que permite cargar el IBAN Registry oficial, persistirlo y consultarlo vía HTTP.

Nunca fue la intención crear un producto financiero ni algo listo para producción. La motivación fue aprender, entender el estándar y dejar algo reutilizable para quien tenga una inquietud similar.

En el fondo, es eso: no reinventar la rueda., si no sentar bases en la comunidad que hermoso . 

Arquitectura ligera y enfoque práctico

Desde el inicio quise que la arquitectura fuera lo más simple posible:

  • FastAPI para una API clara y bien documentada
  • MongoDB como almacenamiento
  • Docker y Docker Compose para que cualquiera pueda levantarlo sin pelearse con el entorno

El proyecto por el momento tiene 2 caminos claros :

  • Modo desarrollador, usando docker-compose.dev, pensado para explorar, modificar o extender el proyecto.
  • Modo pruebas, usando  docker-compose.test  que ocupa directamente la imagen Docker ya publicada, ideal para probar el API.

De todas formas en el repositorio del proyecto pueden encontrar mas detalles , asi que con confianza .

Un demo vale más que mil README

Para cerrar el ciclo decidí desplegarlo en Render. No es la plataforma más robusta ni era la idea hacer algo productivo, pero cumple perfectamente el objetivo: tener un demo público y funcional.

El deployment es temporal. Corre en la capa free y en cualquier momento puede desaparecer… y eso está bien. Mañana ese espacio puede convertirse en otro experimento.

Pruébalo tú mismo

API pública (temporal):
https://open-iban-registry.onrender.com/

OpenAPI Specification:
https://open-iban-registry.onrender.com/openapi.json

Swagger UI:
https://open-iban-registry.onrender.com/docs

Ejemplos de consumo

Carga del IBAN Registry (curl)

curl -X 'POST' \
  'https://open-iban-registry.onrender.com/registry/upload' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'file=@iban-registry.txt;type=text/plain'

Eh dejado una copia del archivo para poder hacer pruebas en la siguiente liga 
https://github.com/juanrenatonoh/open-iban-registry/blob/main/docs/iban-registry.txt
De igual forma lo pueden descargar desde la pagina de swift googleando . 

Consulta del registry

curl -X 'GET' \
  'https://open-iban-registry.onrender.com/registry/' \
  -H 'accept: application/json'

Código y contenedores

Repositorio:
https://github.com/juanrenatonoh/open-iban-registry

Imagen Docker (GHCR):
https://github.com/juanrenatonoh/open-iban-registry/pkgs/container/open-iban-registry

Este proyecto cierra una idea que empezó como una pregunta técnica muy puntual y tambien con la serie de estos artículos que parecía se quedaria sin la parte final 😅. 

Por lo pronto ha pensar el siguiente reto y en lo que se me ocurre a mirar una peli en netflix 

Keep practice !!! 


Comentarios

Entradas populares de este blog

Plataformas gratuitas para desplegar aplicaciones web

Instalación y Uso MongoDB

Documentar API REST con Spring Doc (Swagger)