updated readme
This commit is contained in:
parent
ddd7bd4472
commit
a89b63b95a
1 changed files with 14 additions and 13 deletions
25
README.md
25
README.md
|
|
@ -17,18 +17,15 @@
|
||||||
- ease of use for CRUD operations, like automatic mapping from sql rows to json
|
- ease of use for CRUD operations, like automatic mapping from sql rows to json
|
||||||
- a simple, yet powerful language
|
- a simple, yet powerful language
|
||||||
- urls are made up of directories and filenames
|
- urls are made up of directories and filenames
|
||||||
- a controller sourcefile is a file with the .ctl extension
|
- a controller sourcefile is a file named web.crud
|
||||||
- likewise:
|
- likewise:
|
||||||
- .svc services
|
- service.crud for services
|
||||||
- .cl service clients (that call other services)
|
- db.crud database access code
|
||||||
- .dao database access code (not objects)
|
- util.crud utilities
|
||||||
- .qc queueconsumers
|
- it is not mandatory to have services. You can put all your logic in a controller.
|
||||||
- .qp queueproducers
|
|
||||||
- .utl utilities
|
|
||||||
- there is a strict calling hierarchy. A service cannot call a controller. It can only go 'down'.
|
- there is a strict calling hierarchy. A service cannot call a controller. It can only go 'down'.
|
||||||
- Services can not call other services, because that is the recipe for spaghetti. Refactor your logic, abstract and put lower level code in utilities.
|
- and it can only access functions in its own subtree. Generic code should be put higher up in the tree.
|
||||||
- Utilities are allowed to call other utilities. OMG, spaghetti after all! TBD
|
- Therefore, services cannot call other services, because that is the recipe for spaghetti. Refactor your logic, abstract and put lower level code in utilities.
|
||||||
- Automatic memory management using an arena per call
|
|
||||||
- openapi support
|
- openapi support
|
||||||
|
|
||||||
### An interpreter written in Rust.
|
### An interpreter written in Rust.
|
||||||
|
|
@ -59,8 +56,12 @@ And I cherry picked things I like, mostly from rust and python.
|
||||||
- pluggability for middleware?, implement later?
|
- pluggability for middleware?, implement later?
|
||||||
- JWT tokens, I guess
|
- JWT tokens, I guess
|
||||||
|
|
||||||
## the example in /src:
|
## the example in /source:
|
||||||
- a very simple api that listens to GET /api/customers{:id} and returns a customer from the database
|
- a very simple api that returns "hello world"
|
||||||
|
- but it demonstrates the basic concepts
|
||||||
|
- it starts an axum server
|
||||||
|
- go to http://localhost:3000/hello
|
||||||
|
- goal: it listens to GET /api/customers{:id} and returns a customer from the database
|
||||||
|
|
||||||
## Design
|
## Design
|
||||||
* heavily inspired by Crafting Interpreters.
|
* heavily inspired by Crafting Interpreters.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue