An open API service indexing awesome lists of open source software.

https://github.com/darkweak/lbc-test-demo


https://github.com/darkweak/lbc-test-demo

Last synced: 2 days ago
JSON representation

Awesome Lists containing this project

README

          

# LBC - Test

## Subject
The original fizz-buzz consists in writing all numbers from 1 to 100, and just replacing all
multiples of 3 by "fizz"
, all multiples of 5 by "buzz"
, and all multiples of 15 by "fizzbuzz"
.
The output would look like this:
"1,2,fizz,4,buzz,fizz,7,8,fizz,buzz,11,fizz,13,14,fizzbuzz,16,...
"
.Your goal is to implement a
web server that will expose a REST API endpoint that:
- Accepts five parameters: three integers int1, int2 and limit, and two strings str1 and str2.
- Returns a list of strings with numbers from 1 to limit, where: all multiples of int1 are
replaced by str1, all multiples of int2 are replaced by str2, all multiples of int1 and int2 are
replaced by str1str2.The server needs to be:
- Ready for production
- Easy to maintain by other developersBonus: add a statistics endpoint allowing users to
know what the most frequent request has been. This endpoint should:
- Accept no parameter
- Return the parameters corresponding to the most used request, as well as the number of
hits for this request

## Setup
Just run `make prepare` to install all deps.

## Commands
Run:
```
go run cmd/server.go
```

Lint:
```
make lint
```

## Environment variables
| Name | Description | Default value | Required |
|:------------------|:----------------------------------------------------------------------------------------------------------------------------------------|:--------------|:----------------------------------------|
| `ADDRESS` | Define the server address | `:8080` | no |
| `ENABLE_KAFKA` | Feature toggle to enable Kafka | `false` | no |
| `KAFKA_ADDRESSES` | Set the Kafka adresses. Set only when `ENABLE_KAFKA` is set to `true`. Format is like `localhost:29092,localhost:29094,localhost:29096` | | only when `ENABLE_KAFKA` is set to true |