Commit Graph

14 Commits

Author SHA1 Message Date
Ryan Nowak bb413c6ac3 Rename a bunch of old stuff 2017-10-26 12:35:58 -07:00
Ryan Nowak 736b49294d Add Template abstraction
This change adds the Template as a top level abstraction. URL templating
is now a two-stage process.

First you use a 'key' to look up a Template, then you use the Template
to create the URL.

This change also has some cleanup of the way RoutePatternBinder gets
instantiated. I added a factory service so that most of the complex
things can be made internal to Dispatcher. Now it's much easier to
constuct and use. These impacts some pubternal APIs that we already
broke, but makes them actually nice :)

Also cleaned up some tests and fixed one that was broken and not
running.
2017-10-25 22:15:24 -07:00
Ryan Nowak 63d2cc4637 Changes due to davidfowl feedback
Changed dispatchers to IMatcher, added a context.

Removed a bunch of outdated cruft and updated the sample to use
attribute-routing like entries.
2017-10-05 18:31:23 -07:00
Jass Bagga 2f8951e244 Productize HttpMethodEndpointSelector (#463)
Addresses #452
2017-10-05 15:14:17 -07:00
Ryan Nowak abb41302e9 Add a dispatcher by default (#462)
This change adds the TreeDispatcher by default to the pipeline. You can
register DispatcherDataSource instances to configure it.
2017-09-29 16:06:38 -07:00
Ryan Nowak bd750ad76d Making endpoints and addresses easier
This makes endpoints and addresses easier to work with by dropping the
'metadata first' approach for the the things that are really at the core
of the dispatcher.
2017-09-28 22:07:32 -07:00
Ryan Nowak 5fed462123 Add tree dispatcher 2017-09-27 14:34:09 -07:00
Ryan Nowak 7685e17e80 Add Addresses and link generation 2017-09-24 23:16:34 -07:00
Ryan Nowak 41f26dc69d Add endpoint disambiguation
- Better sample of metadata
- Sample shows how conventional routing would work
- Added endpoint disambiguation
2017-09-22 10:54:20 -07:00
Ryan Nowak 134096d9cb Relayer implementation
This refactor introduces two major changes

1. Now creating the 'handler' delegate happens inside the endpoint
middleware. This allows you to short circuit even harder, AND to create
endpoint funcs that capture and use 'next' to rejoin the middleware
pipeline.

2. Relayered the implementation to have routing plug into the dispatcher.
It wasn't immediately apparent to me that this was the right thing to do,
but I think we will need to do things this way to deliver the kind of
back-compat experience we need to do.

The idea that I have is that 'attribute routing' will be the 'default'
entry in the dispatcher. Adding additional conventional routes or other
IRouter-based extensibility will be possible through adapters - but the
default experience will be to add items to the 'attribute route'.

So. We will need to port the attribute routing infrastructure to the
dispatcher library.

We may also need to make RVD into a subclass of something in the
dispatcher assembly.
2017-09-17 18:29:22 -07:00
Jass Bagga b01072eb47 Use RouteTemplate and TemplateMatcher (#443)
Addresses #438
2017-09-14 15:24:40 -07:00
Jass Bagga a9b47f6722 Startup experience (#442)
Addresses #437 and #440
2017-09-11 15:10:33 -07:00
Jass Bagga 6b2ccdead8 Add sample to "select" an address and generate a URL (#434)
Addresses #428
2017-09-01 14:02:16 -07:00
Jass Bagga ebd0baa458 Add dispatcher packages 2017-08-31 11:54:27 -07:00