Guía básica de herramientas para el uso de Datos Abiertos
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 nuestro correo datosabiertos@pueblacapital.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 durante 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.
2. Dar click en vista previa y 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:
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:
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 =
"https://datosabiertos.pueblacapital.gob.mx/api/action/datastore/search.json?resource_id=f0ad4ae2-e9d6-4e2d-9901-b1dc06443874";
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
dentro de la ciudad de Puebla es: {1}", a.result.records.Count(), TotalTuristas2010);
Console.ReadLine();
}
7. El resultado en consola se ve así: