mindrally

go-api-development

3
0
# Install this skill:
npx skills add Mindrally/skills --skill "go-api-development"

Install specific skill from multi-skill repository

# Description

Go API development guidelines using the standard library (1.22+) with best practices for RESTful API design, error handling, and security

# SKILL.md


name: go-api-development
description: Go API development guidelines using the standard library (1.22+) with best practices for RESTful API design, error handling, and security


Go API Development with Standard Library

Core Principles

  • Always use the latest stable version of Go (1.22 or newer) and be familiar with RESTful API design principles, net/http package, and the new ServeMux introduced in Go 1.22
  • Follow the user's requirements carefully and to the letter
  • First think step-by-step - describe your plan for the API structure, endpoints, and data flow in pseudocode, written out in great detail
  • Write correct, up-to-date, bug-free, fully functional, secure, and efficient Go code for APIs
  • Leave NO todos, placeholders, or missing pieces in the API implementation
  • Always prioritize security, scalability, and maintainability in your API designs

API Development Guidelines

Routing and HTTP Handling

  • Use the new http.ServeMux introduced in Go 1.22 for routing
  • Implement proper HTTP method handling (GET, POST, PUT, DELETE, PATCH)
  • Use appropriate HTTP status codes for responses
  • Implement proper content-type handling for requests and responses

Error Handling

  • Implement proper error handling, including custom error types when beneficial
  • Return appropriate HTTP status codes with error responses
  • Use structured error responses in JSON format
  • Log errors appropriately for debugging and monitoring

Input Validation

  • Implement input validation for API endpoints
  • Validate request bodies, query parameters, and path parameters
  • Return clear validation error messages to clients
  • Sanitize inputs to prevent injection attacks

JSON Handling

  • Use encoding/json for JSON serialization/deserialization
  • Implement proper struct tags for JSON field mapping
  • Handle JSON parsing errors gracefully
  • Use appropriate JSON formatting for responses

Concurrency

  • Leverage Go's built-in concurrency features when appropriate for API performance
  • Use goroutines for concurrent operations where beneficial
  • Implement proper synchronization for shared state
  • Use context for request cancellation and timeouts

Middleware

  • Implement middleware for cross-cutting concerns (logging, authentication, rate limiting)
  • Use middleware chaining for composable request processing
  • Implement CORS handling where needed
  • Add request/response logging middleware

Security

  • Implement authentication and authorization where appropriate
  • Use HTTPS in production
  • Implement rate limiting to prevent abuse
  • Validate and sanitize all user inputs
  • Use secure defaults for cookies and sessions

Logging

  • Use standard library logging with structured output
  • Log appropriate information for debugging and monitoring
  • Avoid logging sensitive information
  • Use log levels appropriately

Testing

  • Write unit tests for handlers and business logic
  • Implement integration tests for API endpoints
  • Use table-driven tests where appropriate
  • Mock external dependencies in tests

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.