Commit Graph

842 Commits

Author SHA1 Message Date
Ryan Nowak 104f9c3517
Merge branch 'master' into merge/release/2.2-to-master 2018-08-14 17:03:36 -07:00
Ryan Nowak e09b88ebd6 Tokenize Less 2018-08-14 15:31:38 -07:00
ASP.NET CI 8ccb8879cd Update dependencies.props
[auto-updated: dependencies]
2018-08-12 20:13:10 +00:00
ASP.NET CI e2892f82ed Update dependencies.props
[auto-updated: dependencies]
2018-08-12 19:27:56 +00:00
Ryan Nowak b394b51c3d Merge branch 'master' into merge/release/2.2-to-master 2018-08-09 08:18:47 -07:00
Ryan Nowak 12cb35894e Add support for GraphViz
Adds **internal** support for dumping a route table to GraphViz DOT
notation. This allows us to dump the DFA graph for a route table and
visualize it.

Example:
https://gist.github.com/rynowak/2b24e4a6a602ca6f9c4de3ec227d621b
2018-08-08 21:36:39 -07:00
James Newton-King 95267a32e2
Add EndpointBuilder (#701) 2018-08-09 13:06:27 +12:00
James Newton-King 14a3a98f48
Merge branch 'merge/release/2.2-to-master' 2018-08-07 18:30:15 +12:00
James Newton-King dce72c9553
Remove public extension methods for registering endpoint routing (#697) 2018-08-07 17:49:31 +12:00
James Newton-King bf1cc45e5e
Merge 2018-08-07 14:06:50 +12:00
James Newton-King 39c5700148
Add docs to RouteValuesAddress (#695) 2018-08-07 13:14:35 +12:00
ASP.NET CI 0aee3f3595 Update dependencies.props
[auto-updated: dependencies]
2018-08-06 20:49:29 +00:00
Kiran Challa 12e662a586 Merge branch 'merge/release/2.2-to-master'
# Conflicts:
#	build/dependencies.props
#	korebuild-lock.txt
2018-08-06 10:19:00 -07:00
ASP.NET CI ce6953de02 Update dependencies.props
[auto-updated: dependencies]
2018-08-05 20:03:33 +00:00
ASP.NET CI c44f2303e7 Update dependencies.props
[auto-updated: dependencies]
2018-08-05 19:25:57 +00:00
Ryan Nowak e53a9f57db adding more docs 2018-08-03 18:55:57 -07:00
James Newton-King 5ee3ae9002
Add XML docs to data sources and metadata (#692) 2018-08-04 13:34:25 +12:00
Ryan Nowak 27a35d5d9b fix benchmarks manifest 2018-08-03 16:51:54 -07:00
Kiran Challa 4d706f045f rebase changes 2018-08-03 12:45:31 -07:00
Kiran Challa 09ce9c3041 Api clean up 2018-08-03 12:37:37 -07:00
James Newton-King 091cb94094 Change metadata namespace
Change EndpointOptions visibility to internal
Add IRequiredValuesMetadata
2018-08-03 12:37:37 -07:00
Kiran Challa c8946a40e4 Created LinkGenerationTemplate and friends 2018-08-03 12:33:34 -07:00
Ryan Nowak 620f91fc93
Merge pull request #690 from dotnet-maestro-bot/merge/release/2.2-to-master
[automated] Merge branch 'release/2.2' => 'master'
2018-08-02 19:00:24 -07:00
Kiran Challa b177ba5309 Changed api of LinkGenerator 2018-08-02 16:10:56 -07:00
Ryan Nowak 9cea167cfa
Add docs - EndpointFeature and related types (#687)
* Add docs - EndpointFeature and related types

* Add docs for route patterns
2018-08-02 15:24:00 -07:00
James Newton-King 2f7ec2ada2
Merge remote-tracking branch 'origin/release/2.2' into feature/master-routing-api-review-p1 2018-08-02 13:54:13 +12:00
James Newton-King 8c4f187c22
Endpoint routing rename and API review changes (#684) 2018-08-02 13:38:08 +12:00
Kiran Challa 057c00082e Merge branch 'merge/release/2.2-to-master'
# Conflicts:
#	build/dependencies.props
#	korebuild-lock.txt
2018-07-31 15:31:33 -07:00
Kiran Challa e19b0b738c PR Feedback 2018-07-31 14:51:55 -07:00
Kiran Challa 85c7bd8fac Discard ambient values during link generation if the values do not match explicit values
[Fixes #544] Link generation: Discard ambient values unless routing to the same address
2018-07-31 14:50:04 -07:00
Ryan Nowak 3d4a66ab8d
Merge pull request #674 from aspnet/kichalla/show.more.debuggerdisplaystring
Show default values in CompositeEndpointDataSource's debugger display…
2018-07-31 14:47:20 -07:00
Kiran Challa ef2c127459 Show route name 2018-07-31 14:08:24 -07:00
Kiran Challa f62877b9db Show default values in CompositeEndpointDataSource's debugger display string 2018-07-31 12:39:37 -07:00
ASP.NET CI ca74ccf541 Update dependencies.props
[auto-updated: dependencies]
2018-07-29 20:09:00 +00:00
ASP.NET CI 865d19652c Update dependencies.props
[auto-updated: dependencies]
2018-07-29 12:24:51 -07:00
Ryan Nowak 1feb501d73
Merge pull request #672 from dotnet-maestro-bot/merge/release/2.2-to-master
[automated] Merge branch 'release/2.2' => 'master'
2018-07-28 21:23:03 -07:00
Ryan Nowak f8b3b73ca7 Remove EndpointConstraints
Adds IEndpointSelectorPolicy so that MVC can plug in to the
EndpointSelector to run action constraints.
2018-07-28 19:03:12 -07:00
Ryan Nowak c74af06bf5
Merge pull request #665 from dotnet-maestro-bot/merge/release/2.2-to-master
[automated] Merge branch 'release/2.2' => 'master'
2018-07-27 18:21:12 -07:00
James Newton-King f870503cdd
Fix HttpMethodMetadata debug string (#666) 2018-07-28 11:13:30 +12:00
Ryan Nowak 54e5370e8f Add CORS support to HttpMethodMatcherPolicy
Also removes HttpMethodEndpointConstraint, since it's been fully
replaced.
2018-07-26 23:01:11 -07:00
James Newton-King 259ccd29e5
Merge branch 'merge/release/2.2-to-master' 2018-07-26 11:43:49 +12:00
James Newton-King c68c5befc7
Remove ChangeToken from EndpointDataSource (#662) 2018-07-26 11:06:54 +12:00
Kiran Challa c4bc628aa6 Merge branch 'merge/release/2.2-to-master'
# Conflicts:
#	build/dependencies.props
2018-07-25 07:13:51 -07:00
Kiran Challa 10f175123f Upgraded dependencies.props 2018-07-25 06:33:34 -07:00
Kiran Challa e0294f1d1b Upgraded dependencies.props 2018-07-25 06:17:54 -07:00
Ryan Nowak 19f24cad16 fix silly constructor 2018-07-24 21:54:24 -07:00
James Newton-King 1340f9c26b
Add EndpointSelectorCandidate ctor to not break MVC (#661) 2018-07-25 16:03:26 +12:00
James Newton-King fdff66054f
Missing ChangeToken -> GetChangeToken updates (#660) 2018-07-25 14:35:41 +12:00
Ryan Nowak 147c9527f3
Implement EndpointSelector and MatcherPolicy (#646)
Implement EndpointSelector and MatcherPolicy

This change makes the EndpointSelector API more concrete, and is the
beggining of removing EndpointConstraint by making it obsolete.

To that end, I'm introducing MatcherPolicy, which is a
feature-collection API for registering policies that interact with the
DfaMatcher. The two policies that we'll need to start are:
- ability to order endpoints
- ability to append 'policy' nodes to the graph

These two concepts together replace EndpointConstraint. Extending our
graph representation is a really efficient way to processing most common
scenarios.

---

In general this helps with common cases where 4 or so endpoints match
the URL, but with different HTTP methods supported on each. Today we
have to process route values and call into some 'policy' to make a
decision about which one is the winner. This change pushes this
knowledge down into the graph so that it's roughly as cheap as a
dictionary lookup, and can be done allocation-free.

The big savings here is ability to remove more candidates *before*
collecting route data.

---

Along with this change, I also built 'rejection' into the DFA node
model, you can see an example with the HTTP Method handling that I
implemented. I implemented a policy that can treat failure to resolve an
HTTP method as a 405 response by returning a failure endpoint. This is
at the heart of much of the feedback we've gotten in this area around
versioning and http method handling. We also have a version of this
feature in MVC for [Consumes].
2018-07-24 17:31:51 -07:00
Kiran Challa f37ca0d2e9 Show list of endpoints in CompositeEndpointDataSource's DebuggerDisplayString
[Fixes #633] Show list of registered endpoints as debugger display string
2018-07-24 17:22:43 -07:00