ASP.NET Web API
-
265 votes
We now have an initial feature spec published for this work – check it out and let us know what you think:
-
Support Nested Routes
MVC has areas, which would work nicely for this. My thoughts behind this are that it's nice to package functionality as modules, and areas serve that purpose well in MVC apps. Of course, it would be nice to be able to host nested areas, as well.
120 votes -
117 votes
-
Execution Order of Mvc4 WebApi Action Filters
There is no way to forecast the execution order of WebApi Action Filters. It changes randomly each time the code is changed. It would be nice to have an integer property to control the order like in normal Mvc controllers, but also respecting the order they are put on the action method would be acceptable
99 votesWe plan to do this one in the next version of ASP.NET Web API!
-
Support OutputCache on WebAPI calls
In ASP.NET MVC it easy to cache the output of a call by applying the outputcache attribute. A similar feature for WebAPI would help for cacheable resources.
69 votes -
OAuth Integeration
Integerated OAuth Authentication for Asp.net WebApi including OAuth Service Provider.
49 votesWe currently plan to use OAuth 2.0 as part of our security story for ASP.NET Web API.
-
Impovements in ApiExplorer
Right now it's impossible to add documentation of the multipart form data parameters and exclude / rename Model Binder arguments.
38 votes -
Please provide a 'how to write unit test for Web Api' including using Task/async ApiControllers'
The section on learning Web API needs to have a topic around writing unit tests. Web API home pages says it's 'easy to test' but then there are no topics around it. Please add a topic on unit testing
35 votes -
Support Depenedency Injection on MessageHandlers
Support Depedency Injection for MessageHandlers by resolving the message handlers out of the ServiceResolver or providing a MessageHandlerFactory similar to the old WebApiConfiguration.MessageHandlerFactory.
34 votesLet us know if you care about broader dependency injection support by voting for this one.
-
Enhance the routing API
While I was working on WebAPIContrib I found several issues with the Routing API. I described it in more detail here: http://pedroreys.com/2012/03/14/asp-net-web-api-routing-needs-a-hug/
31 votes -
System.Web.Http.OData: HTTP PATCH with Delta<T> should allow more than just basic objects for properties.
This is a serious limitation to patching.
19 votesA fix is in progress
-
Support OData changesets for batch/unit of work updating
When using REST services in smart clients or rich JavaScript clients, it is normal to cache changes on the client side and send multiple updates back as a batch. Being able to leverage the change sets support in OData for this would be great.
18 votesThank you for this suggestion. We are investigating adding change set support to ASP.NET Web API OData. It won’t make it in for the first release, but we are considering adding change set support in a future version. Please vote if this feature is important to you.
-
Remove Ambient Namespaces From Serialized XML
Currently the XML serialisers both output namespaces that are not required:
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
I'm not sure about the Data Contract serializer, but it is not difficult to supress these...
Just pass into the Serialize method an XmlSerializerNamespaces:
var xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add(String.Empty, defaultNamespace);var xmlSerializer = new XmlSerializer(objectType);
xmlSerializer.Serialize(xmlWriter, toBeSerialised, xmlSerializerNamespaces);Where defaultNamespace could be set on the GlobalConfiguration.Configuration.Formatters.XmlFormatter or it could be read from the XmlRoot attribute (if present) on the object being serialised.
15 votesWe are looking at exposes settings to control this behavior on the XML formatter
-
Both traditional and verb-based routing cannot be used in the same ApiController
Original discussion here: http://aspnetwebstack.codeplex.com/workitem/184
13 votesWe are looking at having better support for this, in part by making our action selection logic easier to extend.
-
Duplex/Callback functionality
I'm looking for a way to do a client callback/duplex function from a IIS hosted Web API w/a Windows PC .NET client. Right now I'm considering a in-process Web API hosted from w/in the client to receive messages.
What other approaches can I look at for achieving this? While old school WCF has this functionality, this API is the future. Instead of polling, what type of mechanism could allow for a push type notification from the web api on iis to a .net windows client?
12 votesFor notification patterns you can use SignalR, which can use polling patterns or WebSockets:
https://github.com/SignalR/SignalR
We are working on providing a HubController that makes it easy to send real-time notifications to a set of clients. You can see the initial check-in of the feature here:
http://aspnetwebstack.codeplex.com/SourceControl/changeset/7605afebb159
-
Improve the nonexistent MSDN reference documentation for Web API
I *love* Web API, but this is inexcusable:
http://msdn.microsoft.com/en-us/library/hh833994.aspx12 votesWe are in the process of adding documentation for securing Web API’s on www.asp.net/web-api. Once that work is complete the documentation team plans to work on the MSDN page.
-
Add ASP.NET MVC view generation features to ASP.NET Web API
I think maintaining and working with ASP.NET MVC and ASP.NET Web API side by side in the same project is a drain on development resources and support cost.
I would like to use ASP.NET Web API to generate Razor views via an additional NuGet package rather then relying on ASP.NET MVC.9 votes -
9 votes
We are looking at improving our story around PATCH. Vote this one up if you think this is important!
-
Support CREF attribute in ASP.NET Web Api Help Pages
I would really like it if the CREF tag was honored in the WebAPI documentation pages. Example:
<param name="resizeType">The resize type as defined in <see cref="MyModels.ResizeTypeEnum"/></param>
Should dynamically pull information from the summary found at MyModels.ResizeTypeEnum and put it in the Help Page
7 votes -
Use Reflection to Auto Populate the Allow Header
Based on the current Route being executed, it should be possible to detect HTTP methods the same route supports and therefore populate the Allow header in the response. e.g. whilst performing a GET on /api/values it should be possible to detect that the route supports both GET and POST (in fact the code I presume already has this list so that it knows which Action to call). The Allow header could then be populated with GET, POST.
The icing on the cake would be that the Authorize attribute is still checked so if the caller does not have permission to…
6 votes
- Don't see your idea?