LoopBack manages a set of artifacts, such as models, relations, datasources, connectors, ACLs, controllers, repositories, actions, sequences, components, utility functions, and openapi specs. In addition to the programatic approach to describe these artifacts by code (apis and decorators), we would like to add declarative support so that they can be declared in JSON/YAML files.
There are multiple tasks involved:
Define a LB Next definition language (DSL) in JSON/YAML format and corresponding templates. See https://github.com/strongloop/loopback-next/issues/120. We need to come up a list of artifacts and metadata schema for each of them.
Define the project layout to organize LB next artifacts
Leverage the IoC Context to manage metadata/instances of such artifacts following the extension point/extension pattern.
Define the lifecycle and serialization/deserialization requirements for each type of artifact.
Add @loopback/boot to discover/load/resolve/activate the artifacts. See https://github.com/strongloop/loopback-next/issues/441. The boot process can be tailored for both tooling and runtime.
Build tools (CLI/UI) to scaffold LB next applications and render/manipulate LB next artifacts.
To be discussed with @raymondfeng and possibly other stakeholders:
When creating LB4 app, LoopBack users can:
just realized this story is sort of groomed in https://github.com/strongloop/loopback-next/issues/441. please ignore my comment above.
I'm a very happy dev on LB3 right now with a sizable investment in the declarative, model-driven approach.
So I'd just like to say:
Thanks! And keep up the awesome work on LB!
Great feedback! We’ll definitely want to keep the simiplicity for common patterns. The idea of LB4 is to create the primitive building blocks first and add composite ones on top of them based on our users’ need. Ideas of such high order commands are welcome!
@slathrop, thanks for your feedback. To add on @raymondfeng's comment, I'm in the process of cleaning up the steps in the TODO tutorial to demonstrate the "no-code support" to start up something simple. Feel free to comment on my PR: https://github.com/strongloop/loopback-next/pull/1846.
Related discussions: #695 and #1889
I want to second what @slathrop wrote.
Loopback is an awesome framework! I think frameworks like loopback, and others like expressjs, owe their popularity in large part to their simplicity.
For "6. Build tools (CLI/UI) to scaffold LB next applications and render/manipulate LB next artifacts," have you see https://github.com/mermade/openapi-gui? It has been pretty handy when I was trying to learn OAS3 and seems extendable.
This issue has been marked stale because it has not seen activity within six months. If you believe this to be in error, please contact one of the code owners, listed in the CODEOWNERS file at the top-level of this repository. This issue will be closed within 30 days of being stale.
This issue has been closed due to continued inactivity. Thank you for your understanding. If you believe this to be in error, please contact one of the code owners, listed in the CODEOWNERS file at the top-level of this repository.
Most helpful comment
@slathrop, thanks for your feedback. To add on @raymondfeng's comment, I'm in the process of cleaning up the steps in the TODO tutorial to demonstrate the "no-code support" to start up something simple. Feel free to comment on my PR: https://github.com/strongloop/loopback-next/pull/1846.