freeCodeCamp/guide/portuguese/go/receive-data-with-your-webs.../index.md

2.8 KiB

title localeTitle
Receive data with your web server Receba dados com seu servidor da web

Depois de configurar seu servidor da web e garantir que ele possa exibir algum conteúdo útil, convém torná-lo mais interativo, permitindo que ele aceite dados. Vamos começar escrevendo um código:

package main 
 
 import ( 
  "net/http" 
  "html/template" 
 ) 
 
 type PAGE struct { 
  NAME string 
 } 
 
 var page PAGE 
 
 func main() { 
  http.HandleFunc("/", servePage) 
  http.ListenAndServe(":8080", nil) 
 } 
 
 func servePage(writer http.ResponseWriter, reqest *http.Request) { 
  page.NAME = request.FormValue("name") 
  template := template.New("sayHello") 
  template, _ = template.Parse("Hello {{.NAME}}!") 
  template.Execute(writer, page) 
 } 

Vamos quebrar esse código. Primeiramente, começamos importando net/http para o servidor web e html/template para o modelo. Este artigo pressupõe que você já saiba como criar um modelo no Go. Se você ainda não sabe, leia primeiro o artigo sobre o modelo.

Então criamos um tipo chamado PAGE , com um slot chamado NAME (isso é uma string ). Também criamos uma variável global chamada page que é do tipo PAGE : a estrutura que acabamos de criar.

Na função servePage , há uma coisa realmente importante para este artigo: o método FormValue que executamos na request .

Antes de continuar, primeiro você precisa saber como um URL é criado. Vamos pegar o seguinte URL como um exemplo:

https://google.com/search?q=free+code+camp 

Se você inserir o URL acima no seu navegador, ele realizará uma pesquisa no Google por free code camp . O URL é construído assim:

  1. https:// - este é o protocolo
  2. google.com - este é o nome de domínio e porta (neste caso não há porta mencionada - então o navegador usa a porta padrão para o protocolo)
  3. /search - este é o caminho
  4. q=free+code+camp - esta é a query

A consulta é a parte sobre a qual falamos neste artigo. O servidor do Google vê esse URL e, por causa do atributo q na consulta e do valor de q - nesse caso, free+code+camp - ele sabe onde deve procurar.

Também podemos aplicar isso ao nosso servidor. Vamos acionar o programa e navegar no navegador para:

http://localhost:8080/?name=world 

A resposta será:

Hello world! 

Como é que isso funciona? Bem, nós demos ao FormValue um parâmetro de name . Desta forma, FormValue sabe que queremos o valor do atributo name na consulta. Neste caso, isso é world , então o método retorna ao world . Essa sequência é então colocada na variável de page e o modelo faz o resto.

Esta é, obviamente, uma implementação realmente simples dessa função, mas você pode fazer muitas coisas com ela. Por exemplo: você pode aceitar endereços de e-mail e deixar o programa armazená-los em um arquivo.