Cómo crear un servicio web usando go
"Cadena"
"Registro"
)
func decirholaNombre(w http.ResponseWriter, r *http . Solicitud) {
r.ParseForm() //Analizar parámetros, los parámetros no se analizan de forma predeterminada
fmt.Println(r.Form) //Estos se envían al lado del servidor Imprimir información de salida
fmt.Println("path")
r.URL.Scheme)
fmt.Println(Println("path", r . URL.Path)
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
para k, v := rango r.Form {
fmt.Println("key:", k)
fmt.Println("val:", ", cadenas .strings.Join(v, ""))
}
fmt.Fprintf(w, "Hello astaxie!") //El contenido escrito en w se enviará al Terminal de cliente
}
func main() {
http.HandleFunc( "/", sayhelloName) //Establece la ruta a la que se accederá
err := http.ListenAndServe(":/")ListenAndServe(":9090", nil) //Configurar el puerto de escucha
if err = nil {
log. Fatal("ListenAndServe: ", err)
}
}
}
El código anterior se utiliza cuando compila y ejecuta web.exe Finalmente, la solicitud de enlace http se monitorea en el puerto 9090.
Ingresa en el navegador
Puedes ver el resultado de la página del navegador ¡Hola astaxie!
Puedes intentar cambiar la dirección:
¿Ves lo que genera el navegador y lo que genera el servidor?
El resultado del lado del servidor es el siguiente:
Imagen 3.8 Información impresa por el servidor después de que el usuario accede a la Web
Vemos el código anterior. Es muy simple escribir un servidor web. Solo necesita llamar a dos funciones en el paquete http.
Si ya eres programador PHP, entonces te preguntarás: ¿no lo necesitan nuestros servidores nginx y apache? Go no los necesita, porque escucha directamente el puerto tcp y hace lo que hace nginx, y luego sayhelloName es en realidad la lógica de la función que escribimos, junto con la función php (controlador) en la capa de control.
Si alguna vez has sido programador de Python, entonces debes haber oído hablar de Tornado. ¿Es este código muy similar a él? Sí, así es, Go es un lenguaje dinámico con características de escritura similares a Python. Las aplicaciones web son muy convenientes.
Si alguna vez ha sido programador de Ruby, encontrará que el inicio de /script/server es algo similar a ROR.