ASP.NET Web API
-
239 votes
We now have an initial feature spec published for this work – check it out and let us know what you think:
-
116 votes
-
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.
115 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
94 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.
62 votes -
OAuth Integeration
Integerated OAuth Authentication for Asp.net WebApi including OAuth Service Provider.
45 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 -
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.
-
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
34 votes -
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/
28 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.
15 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
-
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.
-
Both traditional and verb-based routing cannot be used in the same ApiController
Original discussion here: http://aspnetwebstack.codeplex.com/workitem/184
10 votesWe are looking at having better support for this, in part by making our action selection logic easier to extend.
-
9 votes
We are looking at improving our story around PATCH. Vote this one up if you think this is important!
-
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 -
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.6 votes -
OData string transform to .NET types
Consider having the following string OData query string:
$filter=(Name eq 'bla)&$skip=5
Would be awesome if you can get the lambda function of $filter. Aswell things like skip, sort field and order, etc.
This would be useful for creating a specific AJAX handler which would filter out a dataset, create Observable data streams (Signalr), etc...
Would be cool if we can extend this parser (get the AST and override parts of the Visitor pattern applied to build an Expression).
Why would you not satisified with only $filter -> Func<T, bool>? Well other collections like (Nhibernate) like to do filtering on a…5 votes
- Don't see your idea?