No Description

ilfey 08a2885acf Merge pull request #38 from ilfey/dev 2 years ago
.vscode 98a6e50ec8 update `settings.json` 2 years ago
cmd 514478380d refactor 2 years ago
internal b21c11cd45 fix imports 2 years ago
.env 1c0993b2ef add `JWT_LIFE_SPAN` 2 years ago
.gitignore 9ec03155eb update `.gitignore` 2 years ago
Makefile dd9d3e019a update `Makefile` 2 years ago
README.md 1692cc87ae Update README.md 2 years ago
go.mod a18de0a6e0 add jwt authentication 2 years ago
go.sum a18de0a6e0 add jwt authentication 2 years ago
test.http f662a03c61 update tests 2 years ago

README.md

Backend for development

It's a backend for frontend development or mobile application development. This program allows you to generate random text for your applications.

How to use it?

You need to download the server and create a .env file or set flags when starting the server.

What should be the file?

ADDRESS=0.0.0.0
PORT=8000
LOGLEVEL=debug
DATABASE_URL="postgresql://ilfey:QWEasd123@localhost:5432/go-back"
JWT_KEY=secret
JWT_LIFE_SPAN=24

What variables are needed?

  • ADDRESS - The IP address that the server will listen on. Default: 0.0.0.0
  • PORT - The port that the server will listen on. Dafault: 8000
  • LOGLEVEL - Server logging level. Default: info
  • DATABASE_URL - The URL of the PostgeSQL database where users will be stored. Default: postgresql://ilfey:QWEasd123@localhost:5432/go-back
  • JWT_KEY - Secret key to generate JWT. Default: secret
  • JWT_LIFE_SPAN - JWT life span in hours. Default: 24

What flags to set?

You can also start the server with the -h flag to see what flags exist. Flags will take precedence if you use flags and environment file at the same time.

  • -a - The IP address that the server will listen on. Default: 0.0.0.0
  • -p - The port that the server will listen on. Dafault: 8000
  • -ll - Server logging level. Default: info
  • -du - The URL of the PostgeSQL database where users will be stored. Default: postgresql://ilfey:QWEasd123@localhost:5432/go-back
  • -jk - Secret key to generate JWT. Default: secret
  • -jls - JWT life span in hours. Default: 24

Routes

Route Description
/ping Check authorization
/text/word?amount={count} Returns the amount of random words
/text/paragraph?amount={count} Returns the amount of random paragraphs
/text/sentence?amount={count} Returns the amount of random sentences
/img/{width}x{height}.png Returns a png image
/img/{width}x{height}.jpg Returns a jpg image
/img/{width}x{height}.gif Returns a gif image
/jwt/register Creates a new user in database
/jwt/login Authorizes the user
/private/text/word?amount={count} Returns the amount of random words
/private/text/paragraph?amount={count} Returns the amount of random paragraphs
/private/text/sentence?amount={count} Returns the amount of random sentences
/private/img/{width}x{height}.png Returns a png image
/private/img/{width}x{height}.jpg Returns a jpg image
/private/img/{width}x{height}.gif Returns a gif image

Text endpoints

http://127.0.0.1:8000/text/word?amount=10

word

http://127.0.0.1:8000/text/sentence?amount=2

sentence

http://127.0.0.1:8000/text/paragraph?amount=1

paragraph

Image endpoints

Query params

  • bg - background color
  • fg - foreground color
  • border - border and diagonal width

When setting fg or bg options you can use alpha channel: 1234 or 12345678

http://127.0.0.1:8000/img/256x256.png?bg=121D32&fg=BF3284

256x256 image

JWT endpoints

http://127.0.0.1:8000/jwt/register

register request

http://127.0.0.1:8000/jwt/login

login request

Ping endpoint

http://localhost:8000/ping

ping