Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nicolasanelli/desafio-tecnico
Technical challenge created in springboot, with junit tests and github actions testing workflow.
https://github.com/nicolasanelli/desafio-tecnico
challenge githubaction-workflow java junit springboot
Last synced: 12 days ago
JSON representation
Technical challenge created in springboot, with junit tests and github actions testing workflow.
- Host: GitHub
- URL: https://github.com/nicolasanelli/desafio-tecnico
- Owner: nicolasanelli
- Created: 2020-08-29T02:56:32.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-04T00:42:06.000Z (almost 4 years ago)
- Last Synced: 2023-03-05T10:49:09.655Z (over 1 year ago)
- Topics: challenge, githubaction-workflow, java, junit, springboot
- Language: Java
- Homepage:
- Size: 88.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![](https://github.com/NicolasAnelli/desafio-tecnico/workflows/tests/badge.svg)
# CEP search serviceCEP search service is a Java service build in Springboot framework for dealing with CEP necessities when you only have a code, and want some more info about the fully address.
## Structure
The project has a layer structured API, that could be splitted into 3 main parts, web layer, application layer and domain layer:
- desafio
- web
- application
- domain### Web layer
The web layer is in **desafio.web package**. This is where all the controllers should be created. This package is responsable for handling all the web interactions
### Application layer
The application is in **desafio.application package**. This is where happens some convertions between the outer layers (as web layer), and the domain layer. This package is responsable for converting some data to be exposed to API, here would be a nice place for handling with exception for logging them.
### Domain layer
The domain layer is in **desafio.domain package**. This is where business logic are concentred. This layer usually do the business validations and data processing. This layer is stricted closed, and can only be access by the exposed method for the public services. This is important to prevent any wrong development.
## Swagger
``"Swagger is in essence an Interface Description Language for describing RESTFUL APIs expressed using JSON."``
Swagger provides a simple way to test and map all the service endpoints, presenting their params and other important info. It is enabled for this service, and it's end-points are:
- http://{host}:{port}/v3/api-docs
- http://{host}:{port}/swagger-ui/## Actuator
``"Actuator includes a number of additional features that help us to monitor and manage the Spring Boot application"``
Springboot actuator includes health check, auditing, monitoring and metrics endpoints. In this case it was added for it health check endpoint:
- http://{host}:{port}/actuator/health## Security
The springsecurity configuration of this project creates a in memory static user for basic authentication in API. The configuration class can be found in **desafio.config package**. And the credential are:
- user: luiza
- password: labs