-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
MVP Epic (Walking Skeleton) #696
Comments
|
Bonus points to @virkt25 for being the first to ask questions. :D I'm answering them out-of-order since some questions answer others.
Originally, yes, but @bajtos and I spoke and we don't think v3 can make it into the MVP given the extra work to revalidate. I think it should be near the top of our stretch goals, but it currently looks like we won't have time for it.
We already generate the v2 swagger spec for them, and if the v3 support is out-of-scope, then this will be as well.
This question has a two-part answer. The runtime APIs do include things like .server, .controller and so on. I don't know if things like |
@raymondfeng @bajtos |
I think HTTPS Support should be MVP because security is important. Also might come in handy for future when implementing HTTP2 as it's required by browsers supporting HTTP2 ... |
Does this mean provide prompts to users which in turn call these functions?
Would the bootstrapper run in the background for all applications and add these files whenever they're added?
What does automatic validation mean in this case? Does it come as a test case for users' generated applications using our testlab swagger validator? |
Could you elaborate more on this? --> "overriding start" do you mean function |
It should also support args flags so that we can programmatically verify it's behaviour without needing to write a hacky engine that inputs arrow keys (cough cough)
It would be a runtime step, much like how loopback 3 does it now. On app start, we scan those directories and build up the bindings. It would probably need to be a behaviour of the Application class (since it, or a subclass of it, will always be a part of any LB4 app).
It means that if you input a body with a property { "foo": 2 } but the swagger defined for that endpoint says that the body's "foo" parameter must be a string, that it will automatically catch this and throw the appropriate error (most likely a 400 Bad Request). |
Yes. Unless someone wants to do something very atypical, they shouldn't need to add this to their Application subclass: async start() {
// some stuff is happening here
await super.start();
} |
@shimks 📟 |
@dhmlau 📟 |
👀 📟 👀 |
TodoController#createTodo method is a good example: @post('/todo')
@param.body('todo', TodoSchema)
async createTodo(todo: Todo) {
if (!todo.title) {
return Promise.reject(new HttpErrors.BadRequest('title is required'));
}
const result = await this.todoRepo.create(todo);
return result;
} The |
Can you clarify what you mean by this? I'm assuming that you want an alternative to what we currently have (explicit binding)? |
Does the validation happen when the corresponding function is invoked or we want to catch it before invoking a controller function? |
IMO the validation (and conversion/coercion) should happen before the controller method (or route handler) is invoked. One option is to implement this as part of |
Closing as done. |
Background
The first preview release of LoopBack4 will enable developers to start building extensions for our new framework version. The next logical step is a release enabling developers to actually build applications (REST API servers). We would like to ship this version in February 2018 (but the date can change!). When we factored in our current team velocity and the amount of work needed, it became clear that we must significantly reduce scope (number of features) if we want to release early next year.
To help us with deciding what to include and what to postpone, we decided to use a mixture of Minimum Viable Product and Walking Skeleton approaches. We picked a small Todo application shown in our loopback4-example-getting-started as the MVP application that should be easy to build with the MVP version of LoopBack4. When grooming our backlog, we can use the following question to drive our priorities: is the user story in question a missing piece that will prevent people from building our Todo app? If it's not required for the Todo app, then it is almost certainly out of scope of the MVP release.
Please note that minimum does not mean hacky and difficult to use! We want to give LoopBack users the best developer experience from the beginning, to get them interested in the new version of our framework, motivated to give it a try and provide us with valuable feedback that we can use to prioritize which features to implement next.
Scope
As a developer creating a small Todo application with REST API/JSON payload only (see loopback4-example-getting-started), I would like to have:
app.server
,app.controller
, etc)app.controller(MyController)
, we'll look in/src/controllers
and findmy.controller.ts
High-level focus areas:
Out of scope
The text was updated successfully, but these errors were encountered: