Mudanças entre as edições de "Go: RESTful - manipulando uma variável"

De Aulas
(Criou página com 'Afluentes: Sistemas Distribuídos e Mobile = Manipulando uma variável = Agora temos um exemplo um pouquinho mais complexo. Criamos uma variável chamada <code>number</c...')
 
Linha 3: Linha 3:
 
= Manipulando uma variável =
 
= Manipulando uma variável =
  
Agora temos um exemplo um pouquinho mais complexo. Criamos uma variável chamada <code>number</code> e vamos usar as chamadas do serviço pelo método <code>GET</code> para retornar o valor e pelo método <code>PATCH<code> para alterar o valor.
+
Agora temos um exemplo um pouquinho mais complexo. Criamos uma variável chamada <code>number</code> e vamos usar as chamadas do serviço pelo método <code>GET</code> para retornar o valor e pelo método <code>PATCH</code> para alterar o valor.
  
 
Veja que o <code>GET</code> é igual o do nosso exemplo Hello World. Mas o <code>PATCH</code> eu envio uma informação na chamada, que é o novo número.
 
Veja que o <code>GET</code> é igual o do nosso exemplo Hello World. Mas o <code>PATCH</code> eu envio uma informação na chamada, que é o novo número.
  
<syntaxhighlight lang=go>
+
<syntaxhighlight lang=golang>
 
package main
 
package main
  

Edição das 11h55min de 1 de março de 2024

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