An open API service indexing awesome lists of open source software.

https://github.com/kx0101/greenlight

A comprehensive RESTful API project in Go featuring modular architecture, advanced JSON handling, PostgreSQL integration, user management, rate limiting, and deployment
https://github.com/kx0101/greenlight

api backend go golang restful-api

Last synced: about 1 month ago
JSON representation

A comprehensive RESTful API project in Go featuring modular architecture, advanced JSON handling, PostgreSQL integration, user management, rate limiting, and deployment

Awesome Lists containing this project

README

          

make help

This repository contains a comprehensive RESTful API project built in Go, designed as a structured, modular system ideal for modern web applications. The project follows a step-by-step approach, from initial setup to deployment, covering backend concepts and advanced functionality

**Features**

- Modular Structure
- HTTP Server: Basic server setup with RESTful routing.
- JSON Handling: Advanced JSON encoding/decoding, including error responses and custom formats.
- Database Integration: PostgreSQL setup with connection pooling and SQL migrations.
- CRUD Operations: Complete implementation of Create, Read, Update, Delete functionality.
- Advanced CRUD: Features like partial updates, optimistic concurrency control, and query timeouts.
- Filtering and Pagination: Comprehensive data retrieval with filtering, sorting, and pagination support.
- Rate Limiting: Global and IP-based rate limiting to manage traffic.
- Graceful Shutdown: Smooth server shutdown handling.
- User Management: User registration, activation, and permission-based authorization.
- Email Notifications: SMTP setup for sending templated and background emails.
- CORS Support: Secure handling of cross-origin requests.
- Metrics Tracking: Request-level and custom metrics for monitoring performance.
- Build Automation: Makefile usage for version control and build management.
- Deployment Guidance: Step-by-step instructions for deploying on Digital Ocean.