Package net
provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets. Although the package provides access to low-level networking primitives.
Package net/http
provides HTTP client and server implementations.
⚡️ Quick start
- Create a new project with Fiber:
cgapp create
# Choose a backend framework:
# > net/http
# Fiber
- Run Docker container with database (by default, for PostgreSQL):
make docker.postgres
- Apply migrations:
make migration.up user=<db_user> pass=<db_pass> host=<db_host> table=<db_table>
-
Rename .env.example
to .env
and fill it with your environment values.
-
Run project by this command:
make run
- Go to API Docs page (Swagger): localhost:5000/swagger/index.html.
📦 Used packages
🗄 Template structure
./app
Folder with business logic only. This directory doesn't care about what database driver you're using or which caching solution your choose or any third-party things.
./app/controllers
folder for functional controllers (used in routes)
./app/models
folder for describe business models and methods of your project
./app/queries
folder for describe queries for models of your project
./app/validators
folder for describe validators for models fields
./docs
Folder with API Documentation. This directory contains config files for auto-generated API Docs by Swagger.
./pkg
Folder with project-specific functionality. This directory contains all the project-specific code tailored only for your business use case, like configs, middleware, routes or utils.
./pkg/configs
folder for configuration functions
./pkg/middleware
folder for add middleware (Fiber built-in and yours)
./pkg/routes
folder for describe routes of your project
./pkg/utils
folder with utility functions (server starter, error checker, etc)
Folder with platform-level logic. This directory contains all the platform-level logic that will build up the actual project, like setting up the database or cache server instance and storing migrations.
./platform/database
folder with database setup functions (by default, PostgreSQL)
./platform/migrations
folder with migration files (used with golang-migrate/migrate tool)
⚙️ Configuration
# .env
# Server settings:
SERVER_URL="0.0.0.0:5000"
SERVER_EMAIL="no-reply@example.com"
SERVER_EMAIL_PASSWORD="secret"
# JWT settings:
JWT_SECRET_KEY="secret"
JWT_REFRESH_KEY="refresh"
# Database settings:
DB_SERVER_URL="host=localhost port=5432 user=postgres password=password dbname=postgres sslmode=disable"
DB_MAX_CONNECTIONS=100
DB_MAX_IDLE_CONNECTIONS=10
DB_MAX_LIFETIME_CONNECTIONS=2
# SMTP severs settings:
SMTP_SERVER="smtp.example.com"
SMTP_PORT=25
⚠️ License
MIT © Vic Shóstak & True web artisans.