In Kretes, you can define implicit routes that are derived from the application features. These are called Resource routes and they can be configured in config/server/routes.ts
under the Resources
key.
Each resource expects a controller in the features/<feature name>/Controller
directory. This controller consists of 1 to 5 actions that may be defined in separate files.
Let's say we have a Game
feature. If we define a Game
resource as described above, this configuration will implicitly generate the five following routes:
Name | File in features/ | HTTP Method | Default Path |
---|---|---|---|
Create | Game/Controller/create.ts | POST | /game |
Browse | Game/Controller/browse.ts | GET | /game |
Fetch | Game/Controller/fetch.ts | GET | /game/:id |
Update | Game/Controller/update.ts | PUT | /game/:id |
Destroy | Game/Controller/destroy.ts | DELETE | /game/:id |
The action names create a CBFUD acronym, an extension of CRUD approach, where we explicitly differentiate between reading a single element and reading a potentially filtered collection of elements.
Actions are responsible to connect the information received from the incoming request to underlaying data in your application (i.e. fetching/saving/updating) in order to produce a corresponding view e.g. a HTML page or a JSON payload.
Found a mistake?Found a mistake? Would you like to suggest an improvement?