Yesterday on twitter I made a comment criticizing the practice of putting an API key in a query string parameter. I was surprised by the amount of attention it got and there were a number of responses questioning the significance of my objection. Rather than try and reply in 140 character chunks, I decided a blog post […]
What follows is a description of an architectural pattern that I see many developers discussing that I believe is an anti-pattern. My belief is based on architectural theory and I have no empirical evidence to back it up, so feel free to come to your own conclusions. The proposed architecture looks like this, I’ve never […]
Fast iterations can be very valuable to the software development process, but make for more time spent doing deployments and testing. Also, more deployments means more opportunities to accidentally introduce breaking changes into your API. AppVeyor is a cloud based continuous integration server and Runscope enables you to do integration testing of your Web APIs, […]
If you are building an ASP.NET Web API and want a view into the HTTP traffic that is hitting your API then this is a really quick solution that might prove useful. Runscope is a cloud based service that allows you to monitor, measure and test Web APIs. By using their API I was able to build a HttpMessageHandler that […]
In the previous post in this series on Conditional Requests I introduced the topic of validators, their purpose and how they can be constructed. A large chunk of the work that needs to be done to support conditional requests is done by the origin server. This blog post is about that role. The first job of the […]
Uber recently announced the availability of a public API. I decided to take it for a spin and provide some commentary. The quick version is that it is a fairly standard HTTP API and that is both a good thing and a bad thing. You can find the official documentation for the Uber API on their […]
ASP.NET Web API 2.1 introduced some significant improvements to the mechanisms that support global error handling. Before this release there were a number of different types of errors that would be handled directly by the runtime and there was no easy way to intercept these errors and add your own custom behavior. The standard guidance suggests […]
I think most us ASP.Net Web API developers have, at some point, experienced the problem where their API is returning a 500 Internal Server Error, but tracing through with Visual Studio doesn’t reveal any exceptions in our code. This problem is often caused when a MediaTypeFormatter is unable to serialize an object. This simple message […]
In Web API 2.1 a new mechanism was introduced for returning HTTP messages that appeared to be a cross between HttpResponseMessage and the ActionResult mechanism from ASP.NET MVC. At first I wasn’t a fan of it at all. It appeared to add little new value and just provide yet another alternative that would a be a source of confusion. […]