Una funcionalidad común cuando hacemos aplicaciones tiene relación con la posibilidad de escoger una ubicación en un país (en nuestro caso Chile.) Esto se puede hacer de muchas formas: datos en una base de datos, cargados en un archivo en algún formato dentro de nuestra aplicación o simplemente cargar la información como código estático. Para el caso de información geográfica-administrativa personalmente prefiero la última alternativa debido a lo poco que cambia esta información y al performace que normalmente queremos de este tipo de código que se usa con frecuencia en una aplicación.
Para facilitar esta tarea, tengo disponibles para público tres Enum
s en Java con información de región, provincia y comuna.
Github
Pueden encontrar el código aquí.
Maven/Gradle
Pueden usar directamente los binarios agregando esta configuración en su build.gradle
:
repositories { jcenter() maven { url 'https://mymavenrepo.com/repo/RsIzk5ozSSaqZE2h2UZJ/' } } dependencies { compile 'io.rebelsouls.lib:chile-data:1.1' }
Ejemplo
Una forma fácil de saber cómo se usa es mirar a las pruebas unitarias. Dejo aquí parte de las pruebas:
@Test public void testGetProvinciaFromComuna() { assertEquals(Provincia.Tocopilla, Comuna.Tocopilla.getProvincia()); assertEquals(Provincia.Tocopilla.getId(), Comuna.Tocopilla.getIdProvincia()); } @Test public void getRegionFromProvincia() { assertEquals(Region.Biobío, Provincia.Bio_Bío.getRegion()); assertEquals(Region.Biobío.getOrdinal(), Provincia.Bio_Bío.getRegion().getOrdinal()); assertEquals(Region.Biobío.getId(), Provincia.Bio_Bío.getIdRegion()); } @Test public void shouldGet2ProvinciaFromAricaRegion() { assertEquals(2, Region.Arica_y_Parinacota.getProvincias().size()); }
En breve publicaré un post con un tutorial para publicar esta información como una API REST/Json con Spring Boot 2.