A conversation with Pablo Castro about Astoria’s RESTful data services

In the latest episode of my Microsoft Conversations series I talked with Pablo Castro about Astoria, a layer of middleware that makes data readable and writeable by means of a RESTful interface. Even if you don’t know or care about the buzzwords, it’s easy to show what Astoria does and to explain why it’s interesting. One of the sample databases configured to work with the experimental version of Astoria is a subset of the Encarta encyclopedia. You don’t have be a programmer or grok XML in order to appreciate the following dialogue with the Astoria-enhanced version of Encarta.

I’m not even close to being an expert in the underlying data access technologies, including ADO.NET, the Entity Data Model, and LINQ, so parts of the discussion quite frankly went over my head. Nor am I yet familiar with the tooling that’s required to wrap this kind of services layer around a plain data source. But I’m 100% clear that it’s a good idea, and a great example of RESTfulweb services — a book that Pablo Castro says is “required reading” for members of the Astoria team.

Related

I found your post really interesting especially in its pattern. You set questions in English and TRANSLATE them in URL (or vice&versa).

That points to one of the two biggest challenges coming to RESTafarians :

#1: URL Opacity sucks
=> As everybody embeds natural languages in URLs, let’s do it in a designed way => Let’s fix Operators to mean “proper noun”, “common noun”, “genitive”, “preposition”, “plural”…tobe able to write “the best article about REST by Jon Udell” in URL.

#2: URL need verbs
=> Excluding verbs cut half of the richness of natural languages. To link me to this article, I need to use “like” to post it within “the articles I like” different from “the articles I dislike” or “the articles I wrote when I was in Moscow.”
=> Verbs needs to be accepted in REST. You would POST things TO the “do” URL that will create things at the “Done” one.

On verbs — careful Julien — what I think you are calling verbs seem to be demonstrative adjectives. Those are the articles “that julien likes” or “that julien dislikes” or “that julien wrote in Moscow”

I think you are justified to want these in your urls, but just to be clear they are not verbs that might tell the system to do something. They are adjectives that further categorize your resource information space.