https://github.com/moattarwork/pokedex
https://github.com/moattarwork/pokedex
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/moattarwork/pokedex
- Owner: moattarwork
- Created: 2021-04-18T07:04:36.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-04-18T18:18:20.000Z (about 5 years ago)
- Last Synced: 2025-01-22T01:36:51.207Z (over 1 year ago)
- Language: C#
- Size: 36.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pokedex
Pokedex is an API layer on top of PokeAPI and FunTranslateAPI which provides endpoints to retrieve Pokemon info in english and also get them in some fun translation such as Yoda or Shakespeare.
The project has been developed on .Net 5 so in order to build/run the project .net 5.0 SDK/runtime need to be installed. You can download them from https://dotnet.microsoft.com/download/dotnet/5.0 depend on your operating system and also your hardware configuration.
## How to build/run
In order to run the project:
```
git clone https://github.com/moattarwork/pokedex
cd pokedex\src
dotnet build
dotnet .\Pokedex.WebApi\bin\Debug\net5.0\Pokedex.WebApi.dll
```
Now the application available to run:
```
# pokemon info
curl https://localhost:5000/pokemon/
For example:
curl https://localhost:5000/pokemon/mewtwo
# pokemon translated info
curl https://localhost:5000/pokemon/translated/
For example:
curl https://localhost:5000/pokemon/translated/mewtwo
```
### Open API EndPoint
The API contains the Open API endpoint which can be used to test the endpoints in the browser. The Open API is available on http://localhost:5000/swagger
### Running in the Docker
An alternative way of running the application is to run docker-compose file in the command line:
```
cd pokedex\src
docker-compose up -d
```
**NOTE: to be able to run the application in the docker, the docker desktop must be available on your machine. You can download the docker desktop from https://www.docker.com/products/docker-desktop**
## Production considerations
- Enabling resiliency on external API calls (Retry, CircuitBreaker, etc) using libraries such as Polly
- Generic poke info is pretty static and it worth to enable a proper caching solution on the API
- Extended logging & enabling telemetry/monitoring