diff --git a/README.md b/README.md index 6a88248..950b6a0 100644 --- a/README.md +++ b/README.md @@ -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` 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 @@ -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 diff --git a/README.pt-br.md b/README.pt-br.md index e09784b..45a1a7a 100644 --- a/README.pt-br.md +++ b/README.pt-br.md @@ -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`, 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