Code Explainers
Go code explainers
go
package middleware import ( "net/http"
A per-IP rate limiter middleware in Gin
rate-limiting
token-bucket
middleware
Intermediate
8 steps
go
package tsvio import ( "bufio"
Reading and writing TSV records in Go
parsing
io-streams
error-handling
Intermediate
10 steps
go
package config import ( "fmt"
Loading and saving YAML config in Go
yaml
struct-tags
defaults
Intermediate
8 steps
go
package theme import ( "fmt"
Per-tenant HTML templates with Gin's renderer
multi-tenancy
concurrency
html-templates
Advanced
8 steps
go
package auth import ( "net/http"
Setting and reading secure session cookies in Go
cookies
session-management
security
Intermediate
6 steps
go
package middleware import ( "net/http"
A maintenance-mode gate in Gin
middleware
atomic-flag
concurrency
Intermediate
8 steps
go
func ServeVideo(c *gin.Context) { id := c.Param("id") video, err := videoRepo.FindByID(c.Request.Context(), id) if err != nil {
Streaming video files with Gin
http streaming
range requests
file serving
Intermediate
6 steps
go
package handler type LineItem struct { SKU string `json:"sku" binding:"required,alphanum"`
Structured validation errors in Gin
validation
json-binding
error-handling
Intermediate
8 steps
go
package deepcopy import ( "bytes"
Deep copying any value with gob in Go
deep-copy
serialization
generics
Intermediate
6 steps
go
package handlers import ( "net/http"
Query-string filtering in Gin with GORM
query-binding
validation
conditional-queries
Intermediate
8 steps
go
func ProxyDownload(c *gin.Context) { objectKey := c.Param("key") upstream := fmt.Sprintf("%s/files/%s", storageBaseURL, objectKey)
Streaming a proxied download in Gin
reverse-proxy
streaming
http-headers
Intermediate
8 steps
go
package handlers import ( "net/http"
Header-driven API versioning in Gin
api-versioning
header-binding
closures
Intermediate
6 steps
go
func ListArticles(db *gorm.DB) gin.HandlerFunc { return func(c *gin.Context) { page, err := strconv.Atoi(c.DefaultQuery("page", "1")) if err != nil || page < 1 {
Building a paginated list endpoint in Gin
pagination
query-parameters
input-validation
Intermediate
8 steps
go
package parser import ( "fmt"
Parsing access logs with named regex groups in Go
regex
named-groups
parsing
Intermediate
5 steps
go
package checksum import ( "crypto/sha256"
Computing SHA-256 checksums in Go
hashing
io-streaming
filesystem-walk
Intermediate
7 steps
go
package dateutil import ( "fmt"
Parsing and formatting dates in Go
date parsing
layouts
timezones
Intermediate
7 steps
go
package middleware import ( "bytes"
Building a response cache middleware in Gin
middleware
caching
concurrency
Intermediate
8 steps
go
package archive import ( "bytes"
Gzip round-trip compression in Go
compression
io
error-handling
Intermediate
5 steps