Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ In addition to traditional CRUD operations, the project features an event-driven
- **Separation of concerns** and SOLID principles
- **Environment-based configuration** via `appsettings.json`
- **Lowercase URLs** and JSON serialization options for cleaner APIs
- **Richardson Maturity Model**: This API reaches **Level 2** of the Richardson Maturity Model, meaning it uses distinct resources and proper HTTP verbs (GET, POST, PUT, DELETE) for each operation. However, it does not yet implement HATEOAS (Level 3), which would include hypermedia links in responses to guide clients dynamically. See [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html) for more details.
- **Unified Response Pattern**: All successful responses follow the `ApiResponse<T>` format, ensuring consistency and predictability for API consumers. All error responses follow the [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) standard using the `ApiProblemDetails` object, making error handling standardized and interoperable.

## Getting Started

Expand Down Expand Up @@ -174,6 +176,7 @@ tests/Library.API.Tests/ # Unit tests
tests/Library.API.IntegrationTests/ # Integration tests
observability/ # Observability configs (Grafana dashboards, Prometheus, Loki, provisioning)
```

### Continuous Integration and Deployment (CI/CD)

#### Workflow Overview
Expand Down
2 changes: 2 additions & 0 deletions README.pt-br.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ Além das operações CRUD tradicionais, o projeto conta com um fluxo de checkou
- **Separação de responsabilidades** e princípios SOLID
- **Configuração baseada em ambiente** via `appsettings.json`
- **URLs minúsculas** e opções de serialização JSON para APIs mais limpas
- **Modelo de Maturidade de Richardson**: Esta API atinge o **Nível 2** do Modelo de Maturidade de Richardson, ou seja, utiliza recursos distintos e os verbos HTTP adequados (GET, POST, PUT, DELETE) para cada operação. Ainda não implementa HATEOAS (Nível 3), que incluiria links hipermídia nas respostas para guiar o cliente de forma dinâmica. Veja mais em [Modelo de Maturidade de Richardson](https://martinfowler.com/articles/richardsonMaturityModel.html).
- **Padrão de Resposta Unificado**: Todas as respostas de sucesso seguem o formato `ApiResponse<T>`, garantindo consistência e previsibilidade para quem consome a API. Todas as respostas de erro seguem o padrão [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) utilizando o objeto `ApiProblemDetails`, facilitando o tratamento de erros de forma padronizada e interoperável.

## Primeiros Passos

Expand Down