2.8 KiB
title, localeTitle
| 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:
https://- este é o protocologoogle.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)/search- este é o caminhoq=free+code+camp- esta é aquery
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.