Go: RESTful - manipulando uma variável

De Aulas

Afluentes: Sistemas Distribuídos e Mobile

Manipulando uma variável

Agora temos um exemplo um pouquinho mais complexo. Criamos uma variável chamada number e vamos usar as chamadas do serviço pelo método GET para retornar o valor e pelo método PATCH para alterar o valor.

Veja que o GET é igual o do nosso exemplo Hello World. Mas o PATCH eu envio uma informação na chamada, que é o novo número.

package main

import (
	"fmt"
	"net/http"
	"strconv"
)

func main() {
	number := 0

	router := http.NewServeMux()

	router.HandleFunc("GET /number", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "%s", strconv.Itoa(number))
	})

	router.HandleFunc("PATCH /number/{num}", func(w http.ResponseWriter, r *http.Request) {
		number, _ = strconv.Atoi(r.PathValue("num"))
		fmt.Fprintf(w, "number updated to %d", number)
	})

	err := http.ListenAndServe("localhost:8080", router)
	if err != nil {
		fmt.Println(err.Error())
	}
}