Golang Básico 2/2
Kairos DS, 2019-03
El Profe
Desarrollador senior Devo
Día 2: API Rest
Entorno de ejecución
Herramientas estándar
Servidor HTTP
API Rest
Pruebas
Entorno de ejecución
Herramientas Estándar
Servidor Http
func Handle(pattern string, handler Handler)
Añade un manejador
func ListenAndServe(addr string, handler Handler) error
Crea un servidor HTTP
Sesión práctica 1: ¡Hola, Mundo! web
import (
"io"
"log"
"net/http"
)
func main() {
// Hello world, the web server
helloHandler := func(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "Hello, world!\n")
}
http.HandleFunc("/hello", helloHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Servidor con Handler
Modifica el servidor para usar un Handler
Well done!
👍
API Rest
Funciones siguiendo la semántica de HTTP
get: no destructivo, idempotente
post: crea un objeto
put: actualiza un objeto, idempotente
delete: borra un objeto, idempotente
Sesión práctica 2: API Rest
Crea un servidor web
Similar a Memcached
Comandos: get, set, delete
Especificación Técnica
GET /get/key
Devuelve el valor de la clave, o cadena vacía
GET /set/key/value
Fija el valor de la clave
(debería ser POST)
GET /delete/key
Borra la clave
(debería ser DELETE)
Ayuda
make(map[string]string)
Crea un mapa de strings
mux sync.Mutex
Declara un mutex para proteger el acceso a un mapa
Well done!
👌
Creación de Paquete
Carpeta independiente
Funciones en mayúscula exportadas
Importado desde fuera
Sesión Práctica 3: Paquete
Crea un paquete memcached
Añade las funciones para set, get, delete
Accede al paquete desde el servidor
Well Done!
😎
Tests
sesión Práctica 4: tests
Crea un test para cada función del mapa
Crea tests para la API Rest
Ayuda
func TestAbs(t *testing.T)
Crea una función de prueba en un fichero _test.go
func Get(url string) (resp *Response, err error)
Lanza una petición get
Well done
Fin del día 2
Golang Básico 2/2
By Alex Fernández
Golang Básico 2/2
Curso de Go básico para Kairos DS, 2019-03, día 2/2.
- 1,883