Ejercicios peticiones a API web con curl

API restful swapi

swapi es una API restful que ofrece información sobre Star Wars. No es necesario a autentificarte y la documentación la obtienes en la dirección: https://swapi.dev/documentation.

  1. Muestra información del personaje que tiene el código 1:

     curl "https://swapi.dev/api/people/1/"
    
  2. Realiza la petición HTTP para obtener todos los personajes de la saga:

     curl "https://swapi.dev/api/people/"
    

    Como hay tantos personajes la respuesta esta páginada, es decir, te devuelve un conjunto de personajes por página, si te fijas al en el json, te indica la dirección de la siguiente página (next), a dirección de la página anterior (previous) y la cantidad de personajes (count):

     ...
     "previous" : null,
    	"count" : 82,
    	"next" : "http://swapi.dev/api/people/?page=2"
     ...
    

    Por la tanto ahora si queremos ver la siguiente página de personajes, hago una petición a (cuidado que hay que usar https, aunque ponga http):

     curl "https://swapi.dev/api/people/?page=2"
    

    Y veamos donde están las siguientes páginas:

     ...
     "next" : "http://swapi.dev/api/people/?page=3",
    "previous" : "http://swapi.dev/api/people/?page=1",
    	"count" : 82
     ...
    
  • Ejercicio 1: Muestra la información de Yoda (este persona está en la segunda página de personajes).
  • Ejercicio 2: Muestra todas las películas de la saga. Haz otra petición para mostrar información de la pélicula “El Retorno del Jedi”.

API restful Redmine

La documentación de la API restful de Redmine está en https://www.redmine.org/projects/redmine/wiki/Rest_api. Utilizando el comando curl realiza peticiones a las API web de las distintas aplicaciones para obtener la siguiente información:

  1. Programa que muestre el nombre de los proyectos públicos de la aplicación redmine de nuestro ciclo. Utiliza la respuesta XML.

     curl "https://dit.gonzalonazareno.org/redmine/projects.xml"
    

    Si quiero la respuesta en XML, si la quiero en json:

     curl "https://dit.gonzalonazareno.org/redmine/projects.json"
    
  2. Programa que muestre el nombre de los proyectos de la aplicación redmine de nuestro ciclo. Para ello necesitas autentificarte con la API key. Utiliza la respuesta XML.

    Lo primero que hacemos es guardar nuestra API KEY en una variable de entorno:

     export key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
     curl "https://dit.gonzalonazareno.org/redmine/projects.xml?key=$key"
    

    Si queremos la respuesta en json:

     curl "https://dit.gonzalonazareno.org/redmine/projects.json?key=$key"
    
  • Ejercicio 1: Obtén información del proyecto 1ºASIR. Tendrás que hacer dos peticiones una para obtener el id del proyecto, y otra para obtener información de dicho proyecto.
  • Ejercicio 2: Obtén información de las tareas que tienes asignadas en el proyecto 1ª ASIR.

API restful de openweather

openweather es un servicio de información meteorológica, puede ver los datos climáticos desde su página web, o usando su API. La matoría de los servicios tienen limitaciones al usar las API de forma gratuita, y te tienes que suscribir para obtener todas las funcionalidades de la API.

  1. Obtener el tiempo atmosférico de la ciudad de Sevilla:

     export key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
     curl "https://api.openweathermap.org/data/2.5/weather?q=Sevilla&mode=json&units=metric&APPID=$key"
    
  2. Obtener la predicción de la ciudad de Sevilla:

     curl "https://api.openweathermap.org/data/2.5/forecast?q=Sevilla&mode=json&units=metric&APPID=$key"| json_pp
    

¿Donde encuentro más API?

  • Ejercicio: Busca alguna API de algún tema que te interese de los enlaces anteriores. Recuerda que la API elegida debe ser libre o tener autentificación basada en key. Estudia la documentación y realiza alguna petición con CURL para obtener información.