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 […]
This past week I spent in Atlanta, Georgia, attending Xamarin Evolve and Atlanta Code Camp. This was the second annual Evolve conference and attendance went from 600 the first year to 1200 this year. This year’s event was an impressive affair. Cultivating an Niche Not only did the number of attendees grow significantly from last […]
Last week was RESTfest week. RESTfest is an unusual little conference that happens in Greenville, South Carolina every September. This is the fifth year it has run and this is my fourth time attending, and I learn a ton every time. What makes RESTFest unique is its “everyone speaks” policy. Although there is a keynote, a whole […]
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 […]
In the recent update of the HTTP specification, the details of conditional requests have been split out and given their whole own specification. Most developers I talk to are familiar with the idea of 304 Not Modified response code, but whenever we start to dig deeper everyone, myself included, are missing pieces of the puzzle. This article is one […]
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 […]
We are currently seeing a significant amount of discussion about building hypermedia APIs. However, the server side only plays part of the role in a hypermedia driven system. To take full advantage of the benefits of hypermedia, the client must allow the server to take the lead and drive the state of the client. As […]