Las API RESTful son arquitecturas populares para la transferencia de datos a través de la web. Las API RESTful suelen utilizar HTTP, lo que las hace adecuadas para casos en los que la apatridia es importante.

Como cualquier idioma del lado del servidor, puede interactuar con el protocolo HTTP y realizar solicitudes HTTP en Go.

Introducción al consumo de API RESTful en Go

los http El paquete proporciona la mayor parte de la funcionalidad que necesitará para interactuar con el protocolo HTTP en Go. Esto incluye realizar solicitudes HTTP, y no necesariamente necesita dependencias externas, como Gin o una base de datos.

Puedes usar el http paquete para consumir API y obtener páginas para raspado web en Go.

Importe estos paquetes para comenzar a realizar solicitudes HTTP en Go.

importar (
"bytes"
"codificación/json"
"fmt"
"io/ioutil"
"red/http"
)

Usarás el bytes paquete para manipular segmentos de bytes, el json paquete para dar formato a los datos de solicitud, el fmt paquete para escribir en la salida estándar, el

instagram viewer
ioutil paquete de entrada y salida, y el http paquete para el envío de solicitudes.

Una solicitud GET simple en Go

Típico OBTENER solicita leer datos de un servidor y puede proporcionar parámetros para los datos según la naturaleza y la especificación de la API.

En este tutorial, aprenderá a consumir API RESTful mediante el servicio simple de solicitud y respuesta de httpbin.

Aquí hay un ejemplo de cómo hacer una solicitud HTTP con Go:

URL := "https://httpbin.org/get"
respuesta, error := http. Obtener (dirección URL)

si error! = nulo {
fmt. Printf("Hubo un error en la solicitud de API %s", err. Error())
} más {
// continúa [1] ...
}

los URL variable es el punto final al que está enviando la solicitud. los Obtener El método toma la URL, ejecuta el Obtener solicitud y devuelve la respuesta, incluidos sus encabezados y cuerpo.

Puede manejar cualquier error de la solicitud según sus requisitos. Si no hay errores, puede proceder a extraer la información que necesita de la Obtener solicitud.

} más {
//... [1] continuación
respuestaDatos, err := ioutil. Leer todo (respuesta. Cuerpo)

si error! = nulo {
fmt. Printf("Hubo un error al analizar el cuerpo de la solicitud %s", err. Error())
} más {
// continúa [2] ...
}
}

Las respuestas Cuerpo El campo contiene el cuerpo de la respuesta. Utilizando el Lee todo metodo de la ioutil paquete, puede leer el cuerpo de la respuesta y manejar posibles errores.

} más {
//... [2] continuación
fmt. imprimir(cuerda(datos de respuesta))
}

los más La declaración imprime el cuerpo de la respuesta en su consola si no hay errores de la operación de lectura.

Aquí está el resultado de la OBTENER solicitud al punto final de httpbin.

Una solicitud POST simple en Go

Las solicitudes POST típicas proporcionan cargas útiles de datos al servidor, y el servidor devuelve una respuesta según la operación.

Aquí hay una estructura simple para codificar una carga JSON en el servidor como parte de la solicitud POST.

escribe JSON estructura {
información cuerda
mensaje cuerda
}

los JSON la estructura tiene la información y mensaje campos de cadena e inicializará una instancia de estructura para la solicitud.

URL := "https://httpbin.org/post"

instancia json := JSON {
info: "esperando éxito",
mensaje: "la solicitud debe devolver ",
}

los URL La variable almacena el punto final de la solicitud POST del sitio web httpbin. los jsonInstancia variable es una instancia de la estructura JSON que puede usar para almacenar y enviar datos estructurados.

Puedes usar el Mariscal método de la json paquete para formatear JSON para la solicitud.

jsonData, error: = json. Marshal (instancia json)
si error! = nulo {
fmt. Println("Hubo un error con el JSON", err. Error())
} más {
// continúa [1] ...
}

los Mariscal El método también devuelve un error que puede manejar. Si no hay errores con la operación de cálculo de referencias JSON, puede proceder a realizar la solicitud POST.

Puedes usar el Correo Método para realizar solicitudes POST. los Correo El método toma el punto final de la URL, el tipo de contenido de la solicitud y un búfer de la carga útil. Devuelve la respuesta y un error.

} más {
//... continuado [1]
respuesta, error := http. Publicar (url, "aplicación/json", bytes. Nuevo búfer (jsonData))

si error! = nulo {
fmt. Println("Hubo un error con la solicitud", err. Error())
} más {
// continúa [2] ...
}
}

Nuevamente, puede leer el cuerpo de la respuesta usando el Lee todo metodo de la ioutil paquete:

} más {
//... continuado [2]
datos, error: = ioutil. Leer todo (respuesta. Cuerpo)

si error! = nulo {
fmt. Println("Hubo un error al leer el cuerpo de la solicitud", err. Error())
} más {
fmt. imprimir(cuerda(datos))
}
}

los Imprimir La declaración envía el resultado de la solicitud HTTP a su consola.

como el documentación de httpbin especifica, este extremo POST devuelve los datos de la solicitud que le envía.

Crear aplicaciones web en Go es fácil

Puede crear aplicaciones web con varias funciones en Go sin dependencias.

los http El paquete tiene las funciones que necesitará para la mayoría de sus operaciones. Puedes usar este paquete con otros como el json paquete para operaciones JSON, el contexto paquete para la señalización y el paquete de plantilla para la creación de plantillas. Hay muchos otros paquetes en la biblioteca estándar.