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

(DRAFT) Feature (mix task): Add a REST API generator to scaffold the code by Domain, Resources and Actions on the REST API layer #7

Open
Exadra37 opened this issue Jul 18, 2024 · 0 comments
Assignees
Labels
draft For issues that are being defined, thus not ready to work on

Comments

@Exadra37
Copy link
Collaborator

Mix Task to generate the REST API folder structure organized by Domain, Resource and Actions

Github Sponsor: https://github.com/sponsors/Exadra37

Important

→ To define which features from the README Roadmap will be free, only for sponsors, or only available in the PRO version.

Why?

To enable developers to write Clean Code in a Clean Software Architecture that respects the Single Responsibility Principle.

The traditional approach in software development tends to group all actions for a resource under the same module, which violates the Single Responsibility Principle because the module has more than one reason to change, as many as the number of actions on the resource.

What?

What to expect from this task is that when the developer executes the mix scribe.gen.restapi ... command in the terminal, the result is a folder structure where a module is created for each action of a REST API resource in a domain at lib/my_app_restapi/. This respects the Single Responsibility Principle because each module only has one reason to change: the logic for the single action it is responsible for.

This generator will also invoke mix scribe.gen.domain (issue #4) to generate the Domain, Resource and Actions for the core business logic.

When?

The developer should use this generator whenever they need to create a new feature that will be consumed via REST API endpoints.

Acceptance Criteria

Let's base the acceptance criteria's on a developer tasked with building an Online Shop.

TODO: Define the acceptance criteria's

@Exadra37 Exadra37 added the draft For issues that are being defined, thus not ready to work on label Jul 18, 2024
@Exadra37 Exadra37 self-assigned this Jul 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
draft For issues that are being defined, thus not ready to work on
Projects
None yet
Development

No branches or pull requests

1 participant