API developed for consumption of BrasilAPI. In it, OpenFeign was used to integrate REST Clients. An in-memory database for caching, Redis, was also used. Along with other technologies like Docker and the docker-compose plugin. The API also relies on swagger-ui for documentation and easy visualization of how the API works. It also uses Actuator and Prometheus, which integrate with Grafana to view metrics and reports in graphs. Was developed to practice programming and to study. Everything was integrated with the github workflow, to generate the docker image build and send them to dockerhub
You can access the API in production through the endpoint https://cepsearch.up.railway.app/api/cep/{any-postalcode}
- Spring Boot
- Spring MVC
- Spring Cloud
- SpringDoc OpenAPI 3
- Redis
- Actuator
- Prometheus
- Grafana
- Docker
- Github Workflow
- SOLID
- API REST
- Dependency Injection
- Automated tests
- Containerization with docker
- Data Caching
- Error response handling
- Full API monitoring
- Automatic Swagger Generation with OpenAPI 3
-
Clone git repository
git clone https://github.com/WeversonL/cepsearch.git cd cepsearch
-
Start with docker-compose
docker-compose up -d
-
If you want to view the interactive swagger, access the url below in your browser
http://localhost:8080/api/swagger-ui/index.html#/
-
Make a search by sending the desired zip code as QueryParam, in your desired client. Below I leave an example curl
curl --location --request GET 'localhost:8080/api/cep/17560-246'
-
To monitor using Grafana, you can access the URL below. Using admin/admin credentials. [They can be changed after the first login]
http://localhost:3000/
-
By developer settings, there are no profiles created or dashboards created. For this, you can configure it manually by following below. Getting started with database setup
Menu -> Connections -> Data Sources -> Add new data source -> Prometheus Prometheus server URL: http://prometheus:9090/ Save & test
-
Add a dashboard. You can create your own, or use created dashboards. Recommend this
Menu -> Dashboards -> New -> Import Add this URL: https://grafana.com/grafana/dashboards/4701-jvm-micrometer/ Load
-
To monitor using Prometheus, you can access the URL below.
http://localhost:9090/
-
To get information with actuator, make a request to the following endpoint
http://localhost:8080/api/actuator
-
To terminate and destroy the containers, you can run
docker-compose down
cepsearch
is MIT licensed.