Desarrolladores

A continuación te presentamos una guía básica de herramientas a usar para el tratamiento de datos. Si tienes dudas o te gustaría aportar código, escríbenos en la sección de Contacto o directamente a nuestro correo datosabiertos@puebla.gob.mx con tema "Sección para desarrolladores".

Las herramientas que te recomendamos:

Limpieza de datos

Extracción de Datos

Mapas de Datos

DKAN API FAQs

Si está buscando cargar grandes cantidades de datos en el sitio, la API puede ser el mejor método para usar.
Puede encontrar la documentación de la API aquí: http://dkan.readthedocs.io/en/latest/apis/index.html. Los primeros dos listados son lo que necesita: la [Dataset REST API](https://dkan.readthedocs.io/en/latest/apis/rest-api.html "Dataset REST API") y [DataStore API](http://dkan.readthedocs.io/en/latest/apis/datastore-api.html "DataStore API") .

¿Cómo consumir los datos abiertos vía API desde c#?

Consideraciones:

  • Toda la información disponible a través de la DKAN API REST en este portal, tiene un Identificador de Recursos Uniforme (URI - Uniform Resource Identifier), lo que permite obtener la información en la misma URL publicada (nivel 5 estrellas según la escala de Tim Berners-Lee).
  • Toda información que devuelve el API es en formato JSON o geoJSON según corresponda.

Ejemplo: conocer la afluencia de visitantes por destino turístico en el estado de Puebla en los últimos años.

Los pasos para consumir la información de manera automática serían los siguientes:

1.Identificar que el dataset y recursos que necesita existan en en el portal de Datos Abiertos.

Información de recurso

2.Para obtener el URL y consumir los datos, da click en el botón DATA API (esquina superior derecha).

3. Esta pantalla le mostrará toda la información al respecto:
Ejemplo de consulta

4. Al darle click al link te mostrará la información en formato JSON, copia el contenido y puedes crear una clase con esa estructura usando la opción pegado especial de VS 2017, como se muestra en la siguiente imagen:
Pegado especial

5. Tu clase quería así:


using ...
namespace ConsoleApp
  {
   ...
  public class Result
  {
    public Field[] fields { get; set; }
    public string[] resource_id { get; set; }
    public int limit { get; set; }
    public int total { get; set; }
    public Record[] records { get; set; }
    public string sql { get; set; }
  }
  ...

6. Copia el link e insértalo en una constante en tu código de c#.


*//si quieres obtener todos los resultados agrega al url el parámetro: &limit=0*
public const string UrlAfluenciaTuristica =
"http://datos.puebla.gob.mx/api/action/datastore/search.json?resource_id=ca509a49-cd8a-46d4-9474-7df7808b8919";

7. Crea tu método para obtener y deserializar el archivo JSON por medio de un HttpWebRequest, quedaría algo así:


  public static Afluencia GetObjectFromJson(string url)
  {
   Afluencia objeto;
   string json;
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
   using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
   using (Stream stream = response.GetResponseStream())
   using (StreamReader reader = new StreamReader(stream))
   {
    json = reader.ReadToEnd();
    objeto = JsonConvert.DeserializeObject(json);
   }
   return objeto;
  }

6. El código donde realizas la petición y obtienes un resultado sería así:


  static void Main(string[] args)
  {
   Afluencia a = GetObjectFromJson(UrlAfluenciaTuristica);
   int TotalTuristas2010 = 0;
   foreach (Record r in a.result.records)
   {
    TotalTuristas2010 = TotalTuristas2010 + Convert.ToInt32(r.ANIO2010);
   }
   Console.WriteLine("El total de turistas registrados en el año 2010 en {0}
      ciudades de Puebla es: {1}", a.result.records.Count(), TotalTuristas2010);
   Console.ReadLine();
  }

7. El resultado en consola se ve así:
Resultado en consola

8. Si quieres descargar este ejemplo y ve al repositorio de GitHub:

Si te gustó esta guía, comparte en tus redes sociales este ejemplo para hacer uso de los Datos Abiertos del gobierno del estado de Puebla etiquetando a @CETGAPue.