url-shortener

module
v0.0.0-...-a2f079e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2022 License: MIT

README

url-shorterner

URL Shortener using Key Generation Service (KGS)

TODO

  • add cronjob to delete expired short url
  • better logging
  • repository tests
  • e2e tests
  • cache when not found
  • Dockerfile
  • docker-compose.yml
  • CI/CD
  • k8s config (maybe in other repo)

Getting started

docker-compose
  1. download docker-compose.yml
wget https://raw.githubusercontent.com/txya900619/url-shortener/main/deployments/docker-compose.yml
  1. docker-compose up
docker-compose up
manual
  1. Install gowatch
go install github.com/silenceper/gowatch@latest
  1. Install generate dependencies
go install github.com/google/wire/cmd/wire@latest \
&& go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@latest \
&& go install go install google.golang.org/protobuf/cmd/protoc-gen-go@latest \
&& go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
  1. Generate needed files
go generate ./...
  1. Start PostgreSQL
docker run --name postgres-docker -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=123456 -d postgres
  1. Start Redis
docker run --name redis-docker -p 6379:6379 -d redis redis-server --requirepass "abc123"
  1. Start Cassandra
docker run --name cassandra-docker -p 9042:9042 bitnami/cassandra:latest
  1. Start kgs (if you want to use in production, change KEY_LENGTH to 6 or more)
cd cmd/kgs \
&& gowatch
  1. Start shorturl server
cd cmd/shorturl \
&& gowatch

How to use

See openapi doc

Why use these DBMS

  • PostgreSQL (TODO)
  • Redis (TODO)
  • Cassandra (TODO)

Directories

Path Synopsis
cmd
kgs
internal
kgs
shorturl/ports
Package ports provides primitives to interact with the openapi HTTP API.
Package ports provides primitives to interact with the openapi HTTP API.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL