I had an interesting problem with API versioning. The API behaviour for a given resource was going to change between version 1.x and 1.y, but the controller logic was going to stay the same. Usually when your behaviour changes it's a big enough change that you need a new controller and you can direct the request appropriately - either using a version number in the route, or (my preference) with a version in the request header and a custom IHttpControllerSelector. But in this case the business logic ......

This is a resource that I hope you find useful – it’s the tools I use every day to help me deliver REST APIs more quickly and with higher quality: Essential Rest Tools It’s linked to my latest Pluralsight course, Five Essential Tools for Building REST APIs, and I’ll be keeping the site up to date as new tools or types of tool emerge. The site lists the best tools I’ve found for different parts of REST API delivery, and briefly covers their plus and minus points: Design Testing Debugging HTTP* Load ......

My latest Pluralsight course has just been released: Five Essential Tools for Building REST APIs I adopted REST APIs in preference to Web Services early in 2010 and the tools available for delivering REST have massively improved in the last few years. This course is all about the tools I use now, where they fit in the delivery process, and what they can do to help you build better APIs, more quickly and with higher quality. REST APIs are refreshingly cross-platform, and so are all the tools in the ......

I've had a need in a few projects for a REST API that doesn't behave well - takes a long time to respond, or never responds, returns unexpected status codes etc.That can be very useful for testing that clients cope gracefully with unexpected responses.Till now I've always coded a stub API in the project and run it locally, but I've put a few 'misbehaved' endpoints together and published them at www.badapi.net, and the source is on GitHub here: sixeyed/badapi.net.You can browse to the home page and ......

Say what? I’m seeing a type of API emerge which serves static or long-lived resources, which are mostly read-only and have a controlled process to update the data that gets served. Think of something like an app configuration API, where you want a central location for changeable settings. You could use this server side to store database connection strings and keep all your instances in sync, or it could be used client side to push changes out to all users (and potentially driving A/B or MVT testing). ......

Thanks to everyone who came along to the UK Connected Systems User Group meeting in London tonight. My session was on non-Microsoft technologies which Microsoft is embracing, either through supporting platforms, partnering with other providers or incorporating into the Azure platform and the .NET tooling. We covered a lot of ground: JSON overview; support in WCF and WebAPI; JSON.NET JavaScript overview; IntelliSense in Visual Studio; TypeScript NoSQL overview; using MongoDB with Azure and MongoLab ......