With the recent surge of interest in hypermedia APIs I am beginning to see the term “self-descriptive” thrown around quite frequently. Unfortunately, the meaning of self-descriptive is not exactly self-descriptive, leading to misuse of the term. Consider the following HTTP requests, Example 1 Example 2: I suspect a fair number of people will be surprised […]
In a previous post I talked about how to send raw JSON to a web API and consume it easily. This is a non-obvious process because ASP.NET Web API is optimized for sending and receiving arbitrary CLR object that then get serialized by the formatters in the request/response pipeline. However, sometimes you just want to have more […]
In our Runscope HipChat room a few weeks ago, I was asked about Unicode encoding in URLs. After a quick sob about why I never get asked the easy questions, I decided it was time to do some investigating. I had explored this subject in the past whilst trying to get Unicode support working in my URI Templates […]
Fiddler is an excellent tool that I have been using for many years to debug HTTP requests in local applications. However, one of the things that Fiddler can’t do easily, out of the box, is allow you to share requests with other team members. Sometimes it is nice to be able to show someone a HTTP […]
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. AppFunc is defined as , using AppFunc = Func<IDictionary<string, object>,Task>; In other words, a function that accepts an object that implements IDictionary<string,object> […]
In the previous post in this series, we talked about how to create a Windows Service that would use an OWIN compatible host, to host an OWIN HTTP application and package that up into an easy to manage executable. This post describes an approach to deploying that executable using simple command line tooling. Push vs Pull Deployments […]
ASP.Net Web API made it fairly easy to create a self-hosted HTTP server. However, the process of taking that self-hosted server and deploying it was an exercise that was left to the reader. This series of blog posts documents the refinements that I have made to my process of creating and deploying self-hosted web servers. […]
When learning new frameworks and libraries I always like to find the simplest thing that works. It helps me to separate in my mind what is core and what is helper stuff. When it comes to debugging it is always nice to be able to strip away the helper stuff. No frameworks allowed! While working […]
This post is the first in a series of posts that will explore some piece of the HTTP specification with the objective of providing practical insights into the uses and abuses of the feature. Consider these posts my attempt to provide HTTP guidance in language that is slightly more digestible than the official IETF specifications. […]