Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEATURE: Replace Controllers with Minimal APIs implementation #56

Closed
CesarD opened this issue Dec 6, 2023 · 0 comments · Fixed by #63
Closed

FEATURE: Replace Controllers with Minimal APIs implementation #56

CesarD opened this issue Dec 6, 2023 · 0 comments · Fixed by #63
Assignees
Labels
enhancement New feature or request

Comments

@CesarD
Copy link
Collaborator

CesarD commented Dec 6, 2023

Detailed Description

Replace the current Controllers implementation with the newer Minimal APIs mechanism.

Context

The Minimal APIs have much less dependencies and provide improved performance against the Controllers. Also, they are flexible enough to be used in very small API projects, which make it ideal for the default implementation of REST APIs in Monaco.

Possible Implementation

I would think towards grouping the APIs by their declared resources, similarly to what we do nowadays with routing in Controllers, separating them in different files.

@CesarD CesarD added the enhancement New feature or request label Dec 6, 2023
@CesarD CesarD self-assigned this Dec 28, 2023
CesarD added a commit that referenced this issue Jan 17, 2024
…tion.

CHORE: Dependencies upgrades and cleanup.

#56
CesarD added a commit that referenced this issue Jan 19, 2024
## Description
The classic Controllers implementation is replaced by the new, more
modern and performant Minimal APIs implementation.

## Related Issue
Closes #56.

## Motivation and Context
As explained in #56, the Minimal APIs implementation brings improved
performance to the request execution because of the reduced amount of
dependencies they provide. They are also more flexible to make this a
better fit even for smaller projects as they are easy to compose and
have a better system to document them in Swagger.

## How Has This Been Tested?
This should be transparent and the endpoints respond exactly as the ones
provided by the Controllers.

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)

## Checklist:
- [X] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [X] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [X] All new and existing tests passed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant