Skip to content

karanrn/go-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-rest-api

A REST API implementation in golang.

Packages used

  1. HTTP Router - gorilla/mux
  2. Mysql driver for golang
  3. JWT for authentication

Implementation

I have implemented a basic REST API to understand and delve deep into the language. MySQL is used as a database backend.

Most of the public APIs implement Rate Limiter upon various factors like IP Address, Authentication, subscription plans and others. There are various implementations of Rate Limiter - Token Bucket, Leaky Bucket, Fixed Window counter and others.

I have used golang's rate package to implement a simple rate limiter, differential rate limiting basis user authentication. API will provide/limit basis user's authentication, an unsigned user will have different threshold (lower) compared to signed user (higher).


Further Reading

  1. Go Packages
  2. Rate Limier
  3. Rate Limiter
  4. Middleware
  5. JWT
  6. Python implementation of REST API

About

REST API implementation in golang

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published