aspnet/Mvc — pull request #1119 by rynowak (2014-09-10 20:52:47+00:00)
Title: Adding Api Explorer

Adds ApiExplorer to MVC and some new plumbing through action descriptors to share arbitrary data.

ApiExplorer produces a set of `ApiDescription` objects for each action that is *visible*.
- `ApiDescription` maps to a specific HTTP verb - or all verbs if there is no restriction
- There can be multiple per action based on routes and verbs
- Includes data about formatters, content-types, parameters

There's a number of things are **are not** included in this work item
- Providing access to user-written doc comments
- Full implementation of the URL part
- Full implementation of the parameter part

ApiExplorer shares a number of implementation characteristics with the `ActionDescriptor` provider pipeline
- The collection of `ApiDescription` is cached, lazy and versioning
- `ApiDescription` objects are produced by an `INestedProvider<>` pipeline
- We only produce them for our *default* `ReflectedActionDescriptor` objects.

The other new thing that's here is an arbitrary metadata mechanism for data that's associated with an AD, but not used for any execution details. I did the same on the `ApiDescription` which has serious need for a *add your framework-specific data here* concept.