Distributed Web API discovery
The site apisjson.org defines a specification for creating a document that declares the existence of an API on the web. This document provides some identification information about the API and links to documentation and to the actual API root URL. It also supports pointing to other resources like API design metadata documents and contact information for maintainers of the API.
Making your ASP.NET Web API funcky with an OWIN appFunc
The OWIN specification defines a delegate called appFunc that allows any OWIN compatible host to work with any OWIN compatible application. This post shows you how to turn an ASP.NET Web API into an AppFunc.
It’s time for a change, and more of the same.
Starting next week, I will be joining the Runscope team. Runscope provides tools that help developers debug, test and monitor Web APIs. This is a company that lives and breathes HTTP. If you know me, I’m sure you understand why that appeals to me.
How not to write spec documents
A few of us keep complaining about the way the HTML5 specification is written. The argument we are given is that the HTML5 is written in a more prescriptive form to reduce the ambiguity that exists in the more traditional “declarative” style RFC documents. I’ve spent a fair bit of time reading specs over the last few years and although they were tough to get going with I feel pretty comfortable now.
Deep Fried Hypermedia
I recently had the opportunity to be interviewed on the Deep Fried Bytes podcast about practical uses of hypermedia for desktop and mobile applications. Hypermedia is one of those topics that we are all familiar within the web browser, but it tends to get forgotten when people start writing client applications. There are many ways to leverage the declarative layer of indirection that hypermedia brings.
Hypermedia Client Maturity Model
There have been a number of attempts to define a maturity model for building RESTful services. The idea of the maturity model is that is gives an indication how closely the service complies with the constraints of REST and hopefully demonstrates the trade offs to be expected when choosing to not follow a particular constraint.
HttpClient, it lives, and it is glorious.
Along with the latest release of WCF Web API there was a updated version of HTTPClient . With it came a bunch of breaking changes, most notably, there are no more Sync methods for doing HTTP requests. This is a change that brings consistency with Microsoft’s new policy that all APIs that take more than 30ms (or is it 50ms?) should be async requests. Yes, it’s a bit annoying to get used to, but I believe in the long run it will be worth it.
How to GET aHEAD with MessageHandlers!
It appears I need to go on vacation more often. I seem to get more chance to experiment. One of my first discussions about RACK was with Mike Kelly where he suggested a simple solution to implementing HEAD across an API. Simply use a RACK application to convert a HEAD request to a GET and then when the response comes back, drop the body. Seeing as I am on a roll implementing obscure HTTP methods using HttpMessageHandler I decided to give it a try.
HTTP Trace was never so easy
So there I was, sitting at my PC hunting some bugs when up pops John Sheehan on IM and starts asking me questions about OPTIONS and TRACE http methods. I pretty much always have the HTTP spec close at hand so I think I was able to at least fake some prior knowledge in attempting to answer his questions. As the discussion continued it started to pique my interest in TRACE. I have been meaning to look into this this obscure HTTP method for some time but have just never got around to it.
Agent Fielding is on a mission
This is a continuation of a series on a Rest Agent library I am building for accessing REST apis. The first post is here and and the second is here.