E-Commerce crypto basket api
- The architeture used for this project was the ONION architecture
- S.O.L.I.D
- DRY
- YAGNI
- KISS
- Aps.Net Core 2.2
- Swagger for api documentation (Swashbuckle)
- Logs using Serilog
- Docker
- Polly for Http resilience
- Polly
For the Http requests resilience, Polly was choose for the purpose of this example with only a retry police AddTransientHttpErrorPolicy
-> WaitAndRetryAsync
.
services.AddHttpClient(HttpConsts.HTTP_NAME, c =>
{
c.BaseAddress = new Uri("https://pro-api.coinmarketcap.com/");
c.DefaultRequestHeaders.Add("X-CMC_PRO_API_KEY", "my-key");
c.DefaultRequestHeaders.Add("Accept", "application/json");
})
.AddTransientHttpErrorPolicy(builder => builder.WaitAndRetryAsync(new[]
{
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(5),
TimeSpan.FromSeconds(10)
}));
- For the continous integration and deployment was used travis-ci platform. Travis-ci is a great CI/CD platform free for open source project, more information at https://travis-ci.com/.
- Restfull
- Versioning
- Authentication
- HATEOAS
- docker build -t myimagename .
- docker run -d -p 8097:80 myimagename
- access on browser http://localhost:8097/swagger/index.html