← Home

šŸø

⌘K
šŸ¤–
Claude Code AI Tools
šŸ¤—
Hugging Face AI Tools
🦜
LangChain AI Tools
🧠
Keras AI Tools
šŸ¦™
Ollama AI Tools
šŸ
Python Programming Languages
🟨
JavaScript Programming Languages
šŸ”·
TypeScript Programming Languages
āš›ļø
React Programming Languages
🐹
Go Programming Languages
šŸ¦€
Rust Programming Languages
šŸ“Š
MATLAB Programming Languages
šŸ—„ļø
SQL Programming Languages
āš™ļø
C/C++ Programming Languages
ā˜•
Java Programming Languages
🟣
C# Programming Languages
šŸŽ
Swift Programming Languages
🟠
Kotlin Programming Languages
ā–²
Next.js Programming Languages
šŸ’š
Vue.js Programming Languages
šŸ”„
Svelte Programming Languages
šŸŽØ
Tailwind CSS Programming Languages
šŸ’š
Node.js Programming Languages
🌐
HTML Programming Languages
šŸŽØ
CSS/SCSS Programming Languages
🐘
PHP Programming Languages
šŸ’Ž
Ruby Programming Languages
šŸ”“
Scala Programming Languages
šŸ“Š
R Programming Languages
šŸŽÆ
Dart Programming Languages
šŸ’§
Elixir Programming Languages
šŸŒ™
Lua Programming Languages
🐪
Perl Programming Languages
šŸ…°ļø
Angular Programming Languages
šŸš‚
Express.js Programming Languages
🐱
NestJS Programming Languages
šŸ›¤ļø
Ruby on Rails Programming Languages
ā—¼ļø
GraphQL Programming Languages
🟪
Haskell Programming Languages
šŸ’š
Nuxt.js Programming Languages
šŸ”·
SolidJS Programming Languages
⚔
htmx Programming Languages
šŸ’»
VS Code Development Tools
🧠
PyCharm Development Tools
šŸ““
Jupyter Development Tools
🧠
IntelliJ IDEA Development Tools
šŸ’š
Neovim Development Tools
šŸ”®
Emacs Development Tools
šŸ”€
Git DevOps & CLI
🐳
Docker DevOps & CLI
ā˜øļø
Kubernetes DevOps & CLI
ā˜ļø
AWS CLI DevOps & CLI
šŸ”„
GitHub Actions DevOps & CLI
🐧
Linux Commands DevOps & CLI
šŸ’»
Bash Scripting DevOps & CLI
🌐
Nginx DevOps & CLI
šŸ“
Vim DevOps & CLI
šŸ”Ø
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
šŸ“¦
Package Managers DevOps & CLI
šŸŽ
macOS DevOps & CLI
šŸ—ļø
Terraform DevOps & CLI
šŸ”§
Ansible DevOps & CLI
āŽˆ
Helm DevOps & CLI
šŸ”Ø
Jenkins DevOps & CLI
šŸ”„
Prometheus DevOps & CLI
šŸ“Š
Grafana DevOps & CLI
šŸ’»
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
šŸ’™
PowerShell DevOps & CLI
šŸ”„
Argo CD DevOps & CLI
šŸ”€
Traefik DevOps & CLI
ā˜ļø
Azure CLI DevOps & CLI
ā˜ļø
Google Cloud CLI DevOps & CLI
šŸ“Ÿ
tmux DevOps & CLI
šŸ”§
jq DevOps & CLI
āœ‚ļø
sed DevOps & CLI
šŸ“Š
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
šŸ”¢
NumPy Databases & Data
🐼
Pandas Databases & Data
šŸ”„
PyTorch Databases & Data
🧠
TensorFlow Databases & Data
šŸ“ˆ
Matplotlib Databases & Data
🐘
PostgreSQL Databases & Data
🐬
MySQL Databases & Data
šŸƒ
MongoDB Databases & Data
šŸ”“
Redis Databases & Data
šŸ”
Elasticsearch Databases & Data
šŸ¤–
Scikit-learn Databases & Data
šŸ‘ļø
OpenCV Databases & Data
⚔
Apache Spark Databases & Data
🪶
SQLite Databases & Data
⚔
Supabase Databases & Data
šŸ”µ
Neo4j Databases & Data
šŸ“Ø
Apache Kafka Databases & Data
🐰
RabbitMQ Databases & Data
šŸ”¤
Regex Utilities
šŸ“
Markdown Utilities
šŸ“„
LaTeX Utilities
šŸ”
SSH & GPG Utilities
🌐
curl & HTTP Utilities
šŸ“œ
reStructuredText Utilities
šŸš€
Postman Utilities
šŸŽ¬
FFmpeg Utilities
šŸ–¼ļø
ImageMagick Utilities
šŸ”
ripgrep Utilities
šŸ”
fzf Utilities
šŸ“—
Microsoft Excel Office Applications
šŸ“˜
Microsoft Word Office Applications
šŸ“™
Microsoft PowerPoint Office Applications
šŸ“
Hancom Hangul Hancom Office
šŸ“½ļø
Hancom Hanshow Hancom Office
šŸ“Š
Hancom Hancell Hancom Office
šŸ“„
Google Docs Google Workspace
šŸ“Š
Google Sheets Google Workspace
šŸ“½ļø
Google Slides Google Workspace
šŸ”Œ
Cadence Virtuoso EDA & Hardware
āš™ļø
Synopsys EDA EDA & Hardware
šŸ’Ž
Verilog & VHDL EDA & Hardware
⚔
LTSpice EDA & Hardware
šŸ”§
KiCad EDA & Hardware
šŸ“
Notion Productivity
šŸ’Ž
Obsidian Productivity
šŸ’¬
Slack Productivity
šŸŽ®
Discord Productivity
šŸŽØ
Figma Design Tools
šŸ“˜
Confluence Atlassian
šŸ“‹
Jira Atlassian
šŸƒ
Jest Testing
⚔
Vitest Testing
šŸŽ­
Playwright Testing
🌲
Cypress Testing
🌐
Selenium Testing
šŸ’™
Flutter Mobile Development
šŸ“±
React Native Mobile Development
šŸŽ
SwiftUI Mobile Development
šŸ“±
Expo Mobile Development
šŸ
Django Web Frameworks
⚔
FastAPI Web Frameworks
šŸŒ¶ļø
Flask Web Frameworks
šŸƒ
Spring Boot Web Frameworks
šŸø
Gin Web Frameworks
⚔
Vite Build Tools
šŸ“¦
Webpack Build Tools
⚔
esbuild Build Tools
🐘
Gradle Build Tools
🪶
Maven Build Tools
šŸ”§
CMake Build Tools
šŸŽ®
Unity Game Development
šŸ¤–
Godot Game Development
šŸ”Œ
Arduino Embedded & IoT
šŸ”
Nmap Security
šŸ•
Datadog Monitoring
šŸ“–
Swagger/OpenAPI Documentation
No results found
EN KO

Basics

Setup

go get -u github.com/gin-gonic/gin Install Gin
go mod init myapp Initialize module
go run main.go Run server

Quick Start

Hello World
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "Hello World"})
    })
    
    r.Run(":8080")
}
Route parameters
// Path parameter
r.GET("/user/:id", func(c *gin.Context) {
    id := c.Param("id")
    c.JSON(200, gin.H{"id": id})
})

// Query parameter
r.GET("/search", func(c *gin.Context) {
    q := c.DefaultQuery("q", "")
    page := c.Query("page")
    c.JSON(200, gin.H{"q": q, "page": page})
})

Routing

HTTP Methods

All methods
r.GET("/resource", getHandler)
r.POST("/resource", createHandler)
r.PUT("/resource/:id", updateHandler)
r.PATCH("/resource/:id", patchHandler)
r.DELETE("/resource/:id", deleteHandler)
r.HEAD("/resource", headHandler)
r.OPTIONS("/resource", optionsHandler)

// Any method
r.Any("/any", anyHandler)

// Custom methods
r.Handle("CUSTOM", "/custom", handler)
Route groups
api := r.Group("/api")
{
    api.GET("/users", getUsers)
    api.POST("/users", createUser)
    
    v1 := api.Group("/v1")
    {
        v1.GET("/items", getItems)
    }
}

// With middleware
authorized := r.Group("/admin")
authorized.Use(AuthMiddleware())
{
    authorized.GET("/dashboard", dashboard)
}

Request Handling

Request Data

Bind JSON
type CreateUser struct {
    Name  string `json:"name" binding:"required"`
    Email string `json:"email" binding:"required,email"`
    Age   int    `json:"age" binding:"gte=0,lte=120"`
}

func createUser(c *gin.Context) {
    var user CreateUser
    if err := c.ShouldBindJSON(&user); err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    c.JSON(200, user)
}
Form data
type LoginForm struct {
    Username string `form:"username" binding:"required"`
    Password string `form:"password" binding:"required"`
}

func login(c *gin.Context) {
    var form LoginForm
    if err := c.ShouldBind(&form); err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    // Process login
}

// File upload
func upload(c *gin.Context) {
    file, _ := c.FormFile("file")
    c.SaveUploadedFile(file, "uploads/"+file.Filename)
}

Response

Response Types

JSON responses
// JSON
c.JSON(200, gin.H{"status": "ok"})
c.JSON(200, user) // struct

// IndentedJSON (pretty)
c.IndentedJSON(200, data)

// SecureJSON (prevents JSON hijacking)
c.SecureJSON(200, []string{"a", "b"})

// JSONP
c.JSONP(200, gin.H{"data": "value"})
Other responses
// String
c.String(200, "Hello %s", name)

// HTML
c.HTML(200, "index.html", gin.H{"title": "Home"})

// XML
c.XML(200, gin.H{"message": "ok"})

// YAML
c.YAML(200, gin.H{"message": "ok"})

// File
c.File("./files/doc.pdf")
c.FileAttachment("./files/doc.pdf", "document.pdf")

// Redirect
c.Redirect(301, "/new-path")

Middleware

Middleware

Custom middleware
func Logger() gin.HandlerFunc {
    return func(c *gin.Context) {
        t := time.Now()
        
        // Before request
        c.Set("start", t)
        
        c.Next() // Process request
        
        // After request
        latency := time.Since(t)
        log.Printf("Latency: %v", latency)
    }
}

// Use globally
r.Use(Logger())

// Use on route
r.GET("/", Logger(), handler)
Built-in middleware
// Logger & Recovery (included in Default())
r := gin.New()
r.Use(gin.Logger())
r.Use(gin.Recovery())

// Basic Auth
authorized := r.Group("/admin")
authorized.Use(gin.BasicAuth(gin.Accounts{
    "admin": "secret",
}))

// CORS (use gin-contrib/cors)
import "github.com/gin-contrib/cors"

r.Use(cors.New(cors.Config{
    AllowOrigins: []string{"*"},
    AllowMethods: []string{"GET", "POST"},
}))