Servidores Web, Tipos de Peticiones Servidores Web, Tipos de Peticiones

­čąç Servidores Web, Tipos de Peticiones

­čŹ┐ ┬┐Qu├ę tipos de peticiones web existen?

De igual forma como es posible responder a diferentes tipos de contenido (content types), es posible responder a diferentes tipos de peticiones (type requests). Estos pueden ser GET, POST, PUT y DELETE. Para crear un servidor en Go que detecte responda en base al tipo de petici├│n realizada podemos echar mano del valor Method* del objeto **http.Request**.

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)
}

Al igual que en el ejemplo en el que determinamos el content type, ahora hemos utilizado un switch para determinar el tipo de petici├│n o request method.

En curl para especificar el tipo de petición se usa el parámetro -X GET.

­čąĄ ┬┐C├│mo realizar una petici├│n GET con curl?

$ 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 realizar una petici├│n tipo POST con curl?

$ 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 realizar una petici├│n tipo PUT con curl?

$ 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 tipo DELETE con curl?

$ 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
Servidores Web, Content Type Servidores Web, Manejo de datos mediante GET
comments powered by Disqus