Toda la geografía de México: Estados, capitales, municipios, sectores electorales, GeoJson, etc, en una sola API.
https://apiestados.opendev.mx
Este proyecto esta desarrollado con las siguientes herramientas:
$ git clone https://github.com/civica-digital/api-estados.git
$ cd api-estados/api
$ mv config/dev.secret.exs.example config/dev.secret.exs
$ mix deps.get
$ mix ecto.create && mix ecto.migrate
$ mix run priv/repo/seeds.exs
$ mix phoenix.server
Ahora puedes visitar localhost:4000
desde tu navegador.
Si durante la creación de la base de datos ocurre un error como el siguiente
** (Mix) The database for Api.Repo couldn't be created: an exception was raised:
es probable que sea relacionado con el usuario de postgres. Puedes intentar corregirlo actualizando la información del archivo config/dev.secret.exs
con los datos de acceso a tu base local.
Para las pruebas hay que verificar que los datos que se encuentren en test.exs sean los mismos que los de docker-compose.yaml en el servicio test
https://apiestados.opendev.mx/api/swagger/#
Contorno de México:
https://raw.githubusercontent.com/civica-digital/api-estados/master/GeoMexico/mexico.geo.json
Contorno de cualquier estado de México:
https://raw.githubusercontent.com/civica-digital/api-estados/json_estados/GeoMexico/estados/{nombre_estado}.geo.json
Es posible levantar un ambiente de desarrollo mediante Docker y DockerCompose sin necesidad de tener Elixir y Phoenix instalado de forma local
- Docker
- Docker Compose: Instalado de forma automática mediante el Docker Toolbox en Windows y OSX. En sistemas operativos *nix, las instrucciones para instalarlo se encuentran en el enlace
Cambiar al directorio de la api:
$ cd api
-
Asegurar que PG_HOST, PG_USERNAME dentro del archivo docker-compose.yml sean los mismos a los del archivo dev.secret.exs
- En caso de utilizar un usuario y contraseña distinto de base de datos, actualizar el servicio
postgres
dentro del archivo docker-compose.yml de la siguiente forma:
postgres: image: postgres:9.5 environment: - POSTGRES_USER:'foo' - POSTGRES_PASSWORD:'foobar' ports: - "5432"
- En caso de utilizar un usuario y contraseña distinto de base de datos, actualizar el servicio
-
Asegurar que el hostname de dev.secret.exs sea el mismo que el especificado como servicio de base de datos dentro de docker-compose.yml. Por defecto postgres
-
Levantar el ambiente (
-d
ejecuta en modo deatached). Por defecto su nombre es web
$ docker-compose up -d web
- Ejecutar dependencias y compilar
$ docker-compose run web mix do deps.get, compile
#En linux, los archivos compilados creados dentro de un contenedor tienen como dueño original a root, es necesario regresarlo al usuario original:
$sudo chown -R $USER:$USER _build
- Ejecutar migraciones y seed inicial
$ docker-compose run web mix ecto.create
$ docker-compose run web mix ecto.migrate
$ docker-compose run web mix run priv/repo/seeds.exs
- Reiniciar el servidor
$ docker-compose restart web
Para ejecutar comandos dentro del servidor es necesario escribir docker-compose run web y el comando.
Mantenemos la conversación del proyecto en nuestra página de problemas issues. Si usted tiene cualquier otra pregunta, nos puede contactar por correo a [email protected].
Licensed under the Apache License, Version 2.0 Read the document LICENSE for more information
Creado por Cívica Digital, 2017.