🔥 SERVIDORES WEB, TIPOS DE PETICIONES

¿Cuáles son los tipos de peticiones HTTP en Go?

En el desarrollo de servidores web, es fundamental comprender cómo responder a diferentes tipos de peticiones en Go. Así como se puede gestionar distintos tipos de contenido, también es posible manejar diversas solicitudes HTTP, como GET, POST, PUT y DELETE. Para implementar esta funcionalidad en Go, se utiliza el atributo Method del objeto http.Request, lo que permite identificar el tipo de petición recibida y actuar en consecuencia.

package main

import "net/http"

func Home(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        http.NotFound(w, r)
        return
    }
    switch r.Method {
    case "GET":
        w.Write([]byte("Se realizó una petición GET"))
    case "POST":
        w.Write([]byte("Se realizó una petición POST"))
    case "PUT":
        w.Write([]byte("Se realizó una petición PUT"))
    case "DELETE":
        w.Write([]byte("Se realizó una petición DELETE"))
    default:
        w.Write([]byte("Se realizó una petición " + r.Method))
    }
}

func main() {
    http.HandleFunc("/", Home)
    http.ListenAndServe(":8000", nil)
}

Este ejemplo muestra métodos HTTP con net/http para peticiones web eficientes, donde se emplea un switch para determinar el método de la solicitud y responder adecuadamente según el caso.

Cuando se utiliza curl para especificar el método HTTP, se emplea el parámetro -X seguido del tipo de petición.

¿Cómo ejecutar una petición GET usando curl?

Para realizar una petición POST, GET, PUT y DELETE en Go con net/http, puedes utilizar la herramienta curl desde la terminal. A continuación, se muestra cómo hacer una solicitud GET:

$ curl -is http://localhost:8000 -X GET
HTTP/1.1 200 OK
Date: Sun, 21 Apr 2019 02:07:43 GMT
Content-Length: 29
Content-Type: text/plain; charset=utf-8

Se realizó una petición GET

¿Cómo enviar una petición POST con curl?

El siguiente comando permite enviar una solicitud POST, lo cual es útil para ajustar las solicitudes según las necesidades del servidor en Go:

$ curl -is http://localhost:8000 -X POST
HTTP/1.1 200 OK
Date: Sun, 21 Apr 2019 02:08:19 GMT
Content-Length: 30
Content-Type: text/plain; charset=utf-8

Se realizó una petición POST

¿Cómo hacer una petición PUT con curl?

Si necesitas modificar recursos, puedes emplear el método PUT. Este es uno de los ejemplos prácticos de peticiones HTTP en servidores web Go más comunes:

$ curl -is http://localhost:8000 -X PUT
HTTP/1.1 200 OK
Date: Sun, 21 Apr 2019 02:09:26 GMT
Content-Length: 29
Content-Type: text/plain; charset=utf-8

Se realizó una petición PUT

¿Cómo realizar una petición DELETE con curl?

Para eliminar recursos en el servidor, se utiliza el método DELETE, siguiendo la misma lógica que los ejemplos anteriores:

$ curl -is http://localhost:8000 -X DELETE
HTTP/1.1 200 OK
Date: Sun, 21 Apr 2019 02:09:54 GMT
Content-Length: 32
Content-Type: text/plain; charset=utf-8

Se realizó una petición DELETE

Conclusión

El manejo de los diferentes tipos de peticiones HTTP en servidores web desarrollados con Go es esencial para construir aplicaciones robustas y flexibles. Comprender cómo utilizar el atributo Method del objeto http.Request permite a los desarrolladores crear servicios capaces de responder adecuadamente a solicitudes GET, POST, PUT y DELETE, cubriendo así las necesidades más comunes en la comunicación cliente-servidor. Además, el uso de herramientas como curl facilita la prueba y depuración de los endpoints implementados, asegurando que cada método funcione correctamente. Dominar estos conceptos no solo mejora la eficiencia del desarrollo, sino que también contribuye a la creación de APIs más seguras y mantenibles, preparadas para ajustarse a los requerimientos de cualquier proyecto web moderno.


Cuestionario de repaso

  1. ¿Qué atributo del objeto http.Request se utiliza para identificar el tipo de petición HTTP en Go?
  2. ¿Cuáles son los métodos HTTP más comunes que puede manejar un servidor web en Go?
  3. ¿Para qué sirve el parámetro -X en el comando curl?
  4. ¿Cómo responde el servidor Go ante una petición cuyo método no sea GET, POST, PUT o DELETE?
  5. ¿Por qué es importante manejar correctamente los diferentes tipos de peticiones HTTP en un servidor web?
  6. ¿Qué ventajas ofrece el uso de un switch para gestionar los métodos HTTP en Go?
  7. ¿Cómo se puede probar una petición DELETE utilizando curl?
  8. ¿Qué mensaje devuelve el servidor cuando se realiza una petición PUT?
  9. ¿Qué importancia tiene la flexibilidad en el manejo de métodos HTTP para la seguridad y mantenimiento de una API?
  10. ¿Cómo ayuda curl en el proceso de desarrollo y depuración de servidores web en Go?