Parseando JSON con Golang y las naves de spaceX

Golang se ha convertido en uno de mis lenguajes favoritos y hoy escribiré de como podemos usar go para poder consumir la API de spaceX y obtener información de las naves lanzadas al espacio

Soy admirador total de Elon musk y de todas sus compañías, una de ellas es spaceX, una compañía dedicada al transporte aeroespacial y hoy por medio de Golang vamos a obtener información de su ultima nave lanzada al espacio.

SpaceX provee una API para obtener toda la información de las naves lanzadas al espacio:

Con esta API podemos obtener los siguientes datos:

Pero no queremos toda la información que nos da el API, solo queremos saber, estos tres valores: Number Flight, mission Name y description. para esto, usaremos Go y consumiremos la API.

Pre-requisitos

  • Instalar Go desde https://golang.org/dl/
  • Chequear la instalación de Go con go version // Yo estoy utilizando la version 1.9.1
  • Para este caso utilizare librerías estándares de Go, ya que tiene los componentes de HTTP y JSON necesarios.
  • Pueden utilizar el editor de texto que quieran, yo utilizo vim con el plugin go-vim

Comencemos:

creamos un archivo llamado spaceX.go y escribimos las lineas básicas de nuestro archivo:

podemos ejecutar nuestro archivo como go run spaceX.go o go build ./spaceX.go

Ahora crearemos el request hacia la API y parsearemos el output para tener los valores que necesitamos:, para eso necesitamos los siguientes librerías

Tambien necesitamos escribir una estructura donde se extraera el texto del JSON, el nombre de las propiedades de la estructura deben iniciar con una letra mayúscula, para que puedan ser referenciadas como publicas

Realizamos el request y leemos la data con ioutil.ReadAll

Instanciamos ship1 con base a la estructura ship que escribimos anteriormente, posteriormente usamos json.Unmarshal para encodear la data y almacenarla en el objeto que instanciamos

Por ultimo el resultado final que queremos mostrar:

Nuestro código debe quedar algo asi:

Guardamos y ejecutamos y debemos obtener un output como este:

Con esto, logramos escribir con Go un HTTP Client que realiza un Request para consumir la API de spaceX y obtener un poco de información de la ultima nave lanzada al espacio.

Mas información

https://golang.org/doc/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.