Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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.

Awesome Lists containing this project

README

        

![](https://github.com/NicolasAnelli/desafio-tecnico/workflows/tests/badge.svg)
# CEP search service

CEP 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