Configuración de Webhooks y API REST con Go y ngrok
Clase 4 de 30 • Curso de Ciberseguridad para Desarrollo Web
Contenido del curso
- 11

Integración de GitHub Webhooks y AWS para Gestión de Commits
02:24 - 12

Gestión de Infraestructura como Código con Terraform en AWS
09:34 - 13

Infraestructura como Código con Terraform y Makefiles
17:44 - 14

Automatización de Infraestructura con Terraform: Roles y Políticas en AWS
06:03 - 15

Implementación de buckets y funciones Lambda con Terraform y AWS S3
16:44 - 16

Configuración de Bases de Datos en AWS con VPC y Seguridad IP
14:10 - 17

Configuración de Lambdas en VPC usando Terraform
12:29 - 18

Configuración de API Gateway para Lambdas en AWS
05:42
- 19

Configuración de Autenticación con Auth0 en Aplicaciones Web
07:14 - 20

Implementación de Authorizer con Auth0 en AWS Lambda
16:56 - 21

Conexión y Configuración de Lambda con AWS y Postgres
13:35 - 22

Configuración de Endpoints y Políticas en AWS con Terraform
11:27 - 23

Validación de Webhooks desde GitHub usando User Agent
12:08 - 24

Validación de Webhooks de GitHub con AWS Secrets Manager
14:32
¿Cómo configurar un sistema de seguimiento en Go con dependencia de Mux Router?
Iniciar tu proyecto en Go y configurar las dependencias adecuadas es fundamental para desarrollar aplicaciones robustas y escalables. Este contenido explicará cómo comenzar un proyecto de seguimiento en GitHub utilizando el lenguaje de programación Go y por qué es tan útil conocer las dependencias esenciales como Mux Router.
Vamos a crear una carpeta para almacenar nuestro código y, acto seguido, inicializaremos un archivo go.mod para gestionar las dependencias de manera eficiente. Estos pasos son vitales para configurar el entorno de trabajo en Go.
¿Cómo se inicializa y se configura el proyecto?
-
Crear carpeta de proyecto: Inicia creando una carpeta llamada
github-tracker.mkdir github-tracker cd github-tracker -
Inicializar
go.mod: Ejecuta el siguiente comando para crear el archivo que gestionará tus dependencias.go mod init github-tracker -
Crear el archivo principal: Crea un archivo
main.godonde centralizarás la lógica del proyecto. Importa el paquete principal y declara la funciónmain. -
Configurar el router: Utiliza el Mux Router para gestionar tus rutas. Si aún no lo tienes, instálalo usando el sistema de dependencias de Go.
go get -u github.com/gorilla/mux
¿Cómo crear un API REST en Go?
Para crear un API REST, declara las rutas y los controladores que se ejecutarán cuando lleguen las solicitudes. La implementación debe contemplar la gestión de los métodos HTTP, así como la producción y gestión de respuestas.
-
Inicializar una ruta con Mux:
import ( "github.com/gorilla/mux" ) func main() { router := mux.NewRouter() router.HandleFunc("/hello", postHandler).Methods("POST") } -
Implementar el controlador de la ruta:
func postHandler(w http.ResponseWriter, r *http.Request) { ioutil.ReadAll(r.Body) defer r.Body.Close() fmt.Println("Received POST request") } -
Iniciar el servidor:
http.ListenAndServe(":8080", router)
¿Cómo gestionar la seguridad y auditoría en GitHub?
Configura webhooks en GitHub para escuchar eventos específicos y gestionarlos localmente. Puedes utilizar herramientas como ngrok para exponer tu servidor local a la red externa de forma segura y temporal.
-
Configurar ngrok:
Después de registrar ngrok, inicia un túnel al puerto 8080 que exponga tu aplicación a internet.
ngrok http 8080 -
Registrar webhook en GitHub:
Ingresa a la configuración de tu repositorio de GitHub, añade un nuevo webhook utilizando la URL proporcionada por ngrok. Configura para escuchar eventos de
push. -
Validar entregas de webhook:
Verifica en el apartado de entregas recientes de GitHub la correcta recepción y procesamiento del payload enviado por el webhook.
Con estas instrucciones habrás configurado un sistema básico de seguimiento en GitHub utilizando Go y Mux Router, además de recibir webhooks localmente con ngrok. Este tipo de configuraciones son esenciales para desarrollar aplicaciones que interactúen con plataformas externas de manera eficiente y segura. Anímate a seguir explorando y mejorando tus proyectos en Go.