-
-
Notifications
You must be signed in to change notification settings - Fork 158
Fix #71 Hard dependency to MVC setup #72
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
Conversation
{ | ||
app.UseMiddleware<RequestMiddleware>(); | ||
|
||
app.UseMvc(); | ||
if (useMvc) | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at this point I would question whether or not it should be the responsibility of this library to even call .UseMvc()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think so too. However, that would be a breaking change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR. I'm fine with the proposed solution. I'd just like to see if there is maybe a better one.
Since the library won't even work without the MVC middleware, what do you think of just adding an overload with a Action<IRouteBuilder> configureRoutes
parameter which we can pass into the UseMvc method?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I thought about that too. Currently, that is the only available overload for UseMvc, so that would be fine. As soon as there is another overload, you'd need to make this available as well...
Furthermore, I think it matters in which order the Use-Calls occur, so to be completely flexible, another Action<IApplicationBuilder>
would be necessary that is called between the app.UseMiddleware<RequestMiddleware>()
and app.UseMvc()
statements.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JanMattner all good points. I can't think of any circumstances where someone would need to apply middleware in between the two, but that doesn't mean there isn't a use case. That would result in a method signature like:
IApplicationBuilder UseJsonApi(this IApplicationBuilder app,
Action<IRouteBuilder> configureRoutes,
Action<IApplicationBuilder> intermediateAppBuilderCalls);
which I can't say I'm a huge fan of. I don't think we should further couple it to the MvcApplicationBuilder
api. Ideally I'd like to see this deprecated in the future. But, I think this PR is a good start.
Offers decoupling of the dependency to MVC setup in IApplicationBuilderExtensions. Default behavior is still to use MVC.