Skip to content

tm4a/subscription-service

Repository files navigation

Subscription Service

REST API for managing user subscriptions.

Tech Stack

  • Go 1.25
  • PostgreSQL 16
  • Chi Router
  • Docker & Docker Compose
  • Swagger/OpenAPI

Quick Start

  1. Clone the repository:
git clone <repo-url>
cd subscription-service
  1. Setup configuration:
cp -r secrets.example secrets
cp config/example.config.yaml config/config.yaml
  1. Start services:
docker compose up --build
  1. API is available at: http://localhost:8080

API Documentation

Swagger UI: http://localhost:8080/swagger/index.html

Endpoints

Method Path Description
POST /api/subscriptions Create subscription
GET /api/subscriptions List subscriptions (filters: user_id, service_name)
GET /api/subscriptions/{id} Get subscription by ID
PUT /api/subscriptions/{id} Update subscription
DELETE /api/subscriptions/{id} Delete subscription
POST /api/subscriptions/total Calculate total cost for period

Environment Variables

The application reads configuration from config.yaml. Example structure:

env: "local"

http_server:
  address: "0.0.0.0:8080"
  timeout: 4s
  idle_timeout: 60s

database:
  host: "postgres"
  port: 5432
  sslmode: "disable"

Database credentials are read from Docker secrets in production or from defaults in development.

About

REST API for tracking user subscriptions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors