“MUrl”: A DSL for RESTful Clients
This is the first of three posts about our MIX talk/announcements.
Today we showed off “MUrl”, which is a DSL and runtime for interacting with HTTP services.

We think “MUrl” has a lot of potential and we are still working on it, but we didn’t want that to stop you from getting your hands on it.
As such, you can download the “MUrl” source code today from the “Oslo” Developer Center.
We are doing this for three reasons: we want you to have something that will make your life a little easier, we want to provide concrete proof of how “M” can be used to make your life easier, and we want to show how you can write your own “M”-based DSLs and runtimes.
I will be clear that “MUrl” is a work in progress and you are going to find things that don’t work the way you want/expect. You do have the source code however. Enjoy.
I’m wondering if you could generate a CodeDom for MUrl with Oslo, or would I be forced to dynamically generate MUrl code with .Write(”GET “); .WriteLine(url); etc?
George Tsiokos
20 Mar 09 at 20:03
[...] addition to “MUrl” (which works on the CTP bits today), we showed off an early look [...]
“MService”: A DSL for RESTful Services at Douglas Purdy
20 Mar 09 at 20:26
[...] information about MUrl can be found in the Doug’s blog, http://www.douglaspurdy.com/2009/03/20/murl-a-dsl-for-restful-clients/ . An example is also available to download from the Oslo Dev Center, [...]
“MUrl” and “MService”, two new DSLs for REST services - Pablo M. Cibraro (aka Cibrax)
20 Mar 09 at 20:41
“MUrl”: A DSL for RESTful Clients – Douglas Purdy…
Thank you for submitting this cool story – Trackback from DotNetShoutout…
DotNetShoutout
20 Mar 09 at 22:15
[...] We put MURL out on the Oslo dev center. MURL is a textual DSL for doing web client work. ChrisAn and I showed [...]
Recent Oslo Stuff - Don Box's Spoutlet - Pluralsight Blogs
23 Mar 09 at 07:25
[...] addition to “MUrl” (which works on the CTP bits today), we showed off an early look at [...]
“MService”: A DSL for RESTful Services | iphones |
24 Mar 09 at 03:51
We need a run-time code generation story instead of the current string builder approach. I can appreciate the run-time parsing usage, but I believe Oslo could generate a complier-friendly way to “code-generate” DSL code at run-time.
Instead of this:
var statements = runtime.Parse (@”? http://twitter.com/statuses/user_timeline.xml authenticate using [Twitter]“);
We could write this in c#:
var statements = new MUrl.Get(”http://twitter.com/statuses/user_timeline.xml”, Authentication.Twitter);
This could give you c# compile-time checking of some of the MUrl code. Behind the scenes, the above c# syntax could just convert the code to a string and parse.
George Tsiokos
24 Mar 09 at 18:37
How would one post POX (plain old xml) to a site using MuRL?
Delbert Aud
26 Mar 09 at 23:58
POST http://site
with []
as application/xml
douglasp
27 Mar 09 at 01:16
Im probably a bit thick but could anyone explain to me the authenticate with [Twitter] part?
How is this credential retrieved?
elgrego
30 Mar 09 at 16:14
There is a message giving me the respone
Expect: 100-continue
elgrego
30 Mar 09 at 20:09
Twitter is the name of a credential in CredMan. If you watch the video, you can see how to configure that.
douglasp
30 Mar 09 at 23:22
Are you hitting Twitter?
Add the below to ipad.exe.config
douglasp
30 Mar 09 at 23:23
Doug, It was indeed very simple to find CredMan!
As always, I expect something hard and it is usually very simple.
(I must have slept at that point in the presentation)
elgrego
31 Mar 09 at 06:01
“Add the below to ipad.exe.config”
I think you left something in your post?
elgrego
31 Mar 09 at 06:10
It now works.
I added System.Net.ServicePointManager.Expect100Continue = false;
in public WebResult Execute(WebStatement statement)
elgrego
31 Mar 09 at 06:23
that works or you can do in in the app.config.
douglasp
31 Mar 09 at 16:08
[...] book called RESTful .NET by Jon Flanders. After reading this book I enjoyed playing around with the MUrl which is a DSL for RESTful clients and I am looking really forward trying out the MService – a [...]
Book tip: RESTful .NET « Stefanseverin’s Blog
26 Apr 09 at 16:24
[...] spending a bunch of team writing iPhone code — LocoFoto and something new) is an update to MUrl sample that I used as part of the MIX09 talk with [...]
On MUrl and “Intellipad” at Douglas Purdy
4 Dec 09 at 08:08
[...] “MUrl” is updated to the latest CTP (thanks SNinja and the rest of the Intellipad team). [...]
“MUrl”: A DSL for RESTFul clients (Nov. 2009 CTP) at Douglas Purdy
5 Dec 09 at 02:47