Curso Práctico de Go: Creación de un Servidor Web

Curso Práctico de Go: Creación de un Servidor Web

Instruido por:
Néstor Escoto
Néstor Escoto
Básico
5 horas de contenido
Ver la ruta de aprendizaje
Curso Práctico de Go: Creación de un Servidor Web

Curso Práctico de Go: Creación de un Servidor Web

Progreso del curso:0/42contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/42contenidos(0%)

Introducción a Go

Material Thumbnail

Mi primer programa en Go

07:51 min

Material Thumbnail

Instalación en Mac y Windows

03:27 min

Material Thumbnail

Comandos básicos de Go

03:13 min

Material Thumbnail

Analizando un programa en Go

08:34 min

Nuestra Primera Aplicación Go

Material Thumbnail

Descripción del proyecto 1: Calculadora

01:41 min

Material Thumbnail

Leer inputs desde la consola

07:41 min

Material Thumbnail

Manejo de errores y uso de If

05:21 min

Material Thumbnail

Structs y Receivers

13:46 min

Lista de Tareas

Material Thumbnail

Descripción del proyecto 2: Lista de Tareas

01:51 min

Material Thumbnail

Structs para Lista de Tareas

10:59 min

Material Thumbnail

Punteros en Structs

02:42 min

Material Thumbnail

Implementar For en Struct

04:16 min

Interfaces

Material Thumbnail

¿Qué es una interfaz?

05:54 min

Material Thumbnail

¿Por qué las Interfaces?

06:06 min

Material Thumbnail

Creando la Interfaz Animal

05:08 min

Material Thumbnail

Imprimiendo el contenido de una Página Web usando Interfaces

14:09 min

Goroutines y Channels

Material Thumbnail

Introducción al problema de la Concurrencia

06:51 min

Material Thumbnail

Implementación de Goroutines y channels

09:52 min

Construyendo un Servidor Web

Material Thumbnail

Ciclos While y For

05:35 min

Descripción de Servidor Web

08:41 min

Material Thumbnail

Creando el Servidor

08:04 min

Material Thumbnail

Manejando rutas en backend

07:54 min

Material Thumbnail

¿Qué es un Middleware?

04:46 min

Material Thumbnail

Manejando Request HTTP

05:18 min

Material Thumbnail

Asignando Rutas HTTP

12:47 min

Material Thumbnail

Agregando Middlewares

11:13 min

Material Thumbnail

Agregando Multiples Middlewares

07:10 min

Material Thumbnail

Agregando otro Middleware

08:17 min

Material Thumbnail

Manejando Modelos y JSON

10:57 min

Material Thumbnail

Respondiendo Request JSON

10:53 min

Material Thumbnail

Go Modules creando nuestro primer módulo en Go

06:33 min

Material Thumbnail

Implementando nuestro primer módulo en Go

11:04 min

Material Thumbnail

Conclusiones del Curso y siguientes pasos

03:50 min

nuevosmás votadossin responder
Alejandro Carballo
Alejandro Carballo
Estudiante

Como guardo los items que tengo en mi struct en un map?
Selection_089.png

1
Victor Inojosa
Victor Inojosa
Estudiante

Tengo este error y no se como solucionarlo. Me ayudan?

cannot use HandleRoot (type func(http.ResponseWriter, http.Request)) as type http.HandlerFunc in argument to server.Handle

1
Victor Inojosa
Victor Inojosa
Estudiante

Tengo este error y no se como solucionarlo. Me ayudan?

cannot use HandleRoot (type func(http.ResponseWriter, http.Request)) as type http.HandlerFunc in argument to server.Handle

1
alberto-estrella
alberto-estrella
Estudiante

Y que tipo de dato es para el lenguaje GO, es un texto? o un dato llamado dirección?

y := &x
0
waldoaraque
waldoaraque
Estudiante

alguien tiene este error?

too many arguments incallto checkServer
	have (string, chan string)
	want(string) go

igual sigue funcionando… Pero me gustaría saber, tengo todo bien definido.

0
Nilson Alfonso Perez Donado
Nilson Alfonso Perez Donado
Estudiante

Hola como están es que no veo el código de
type Middleware func(http.HandlerFunc) http.HandlerFunc{
?
}

existe algún repositorio que el profesor haya suministrado?

1
Martín Martínez
Martín Martínez
Estudiante

¿Qué es mejor practica declarar el tipo de dato o no?

2
rednux
rednux
Estudiante

¿Por qué se llama nill en vez de la convención null ?

2
Manuel Leonardo Guerrero Ramirez
Manuel Leonardo Guerrero Ramirez
Estudiante

con el codigo que el profesor hizo para el proyecto de la calculadora hay un error o bueno el codigo corre bien pero podria ser mejor? pregunto porque jugando un poco con el programa al introducir en la linea de comando : go run calculadora.go, despues introducir 2+2 y en la siguiente linea introducir cualquier otro operador sale une error, dice que esta fuera de rango supongo que el programa lee el string y al comparar la nueva entrasa con el string anterior al no encontrarlo salta este error, mi pregunta es, se puede mejorar el codigo de manera que no sea necesario colocar el operador en el primer string o que al introducir la operacion el programa pueda leer el operador sin necesidad de que se tenga que confirmar?

package main

import ("bufio""fmt""os""strconv""strings"
)

type calc struct{}

func (calc) operate(entrada string, operador string) int {
	entradaLimpia := strings.Split(entrada, operador)
	operador1 := parsear(entradaLimpia[0])
	operador2 := parsear(entradaLimpia[1])
	switchoperador {
	case"+":
		fmt.Println(operador1 + operador2)
		return operador1 + operador2
	case"-":
		fmt.Println(operador1 - operador2)
		return operador1 - operador2
	case"*":
		fmt.Println(operador1 * operador2)
		return operador1 * operador2
	case"/":
		fmt.Println(operador1 / operador2)
		return operador1 / operador2
	default:
		fmt.Println(operador, "No esta soportado")
		return0
	}
}

func parsear(entrada string) int {
	operador, _ := strconv.Atoi(entrada)
	return operador
}

func leerEntrada() string {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	return scanner.Text()
}

func main() {
	entrada := leerEntrada()
	operador := leerEntrada()
	c := calc{}
	fmt.Println(c.operate(entrada, operador))

}
0
gabriel
gabriel
Estudiante

Me da este error:

./middleware.go:9:9: cannot use func literal (type func(http.HandlerFunc) http.HandlerFunc) as type Middleware in return argument

middleware.go

package main

import (
	"fmt""net/http"
)

funcCheckAuth()Middleware {
	returnfunc(f http.HandlerFunc) http.HandlerFunc {
		returnfunc(w http.ResponseWriter, r *http.Request) {
			flag := false
			fmt.Println("Checking auth")
			if flag {
				f(w, r)
			} else {
				return
			}
		}
	}
}
1