Skip navigation

This is Volume 45 of This week in REST, for September 22 2012 – November 25 2012. For more information on this blog see this post. If I missed an interesting blog post, discussion or paper – just e-mail me the links, tweet or leave a comment on the latest blog post. Thanks!

Around the Web

hm-json Browser – “hm-json Browser is a JavaScript client that can browse and interact with hm-json (Hypermedia JSON) APIs. It is intended to: 1. Show that JSON can be hypermedia, and 2. Make discovering and using an API as easy as surfing the Web.” (by David Gauer)

From Webhooks to the Evented Web – “These days, the people that really get it are starting to build some really neat things. Webhooks have spread enough that you can at least reference them or the idea of HTTP callbacks and not have to explain yourself. Now is maybe the perfect time for me to put a few specific projects into motion that could at least provide a tangible foundation for building out the Evented Web. Not just vague notions. The most immediate thing is a lightweight spec for implementing webhooks.” (by Jeff Lindsay)

Introducing Client-Server Domain Separation – “I have been thinking about Client-Server Domain Separation CSDS for a while. And I think it is time to do a brain dump. So here is the definition CSDS – if you don’t want to read the whole post. CSDS defines a single constraint which is just an expansion on REST’s client-server constraint: Client and server must define and live in their own bounded context. This will lead to 1) cleaner separation of concerns among clients and servers and 2) adoption of API as the building blocks of complex systems in an SOA world. CSDS is also not compatible with HATEOAS – as we will see. If you need to find out how such a seemingly trivial constraint can have such an impact, read the rest.” (by Ali Kheyrollahi)

REST’s “Inverted” Architecture Model – “HTTP was designed to favor runtime stability in the long term (measured in years/decades) over ease of implementation. To do this, it relies on some very simple –but powerful – constraints. … Implementing large-scale solutions under the above constraints is usually quite different from what developers learn in school. Most training recommends the reverse of the above rules.” (by Mike Amundsen)

When REST isn’t good enough – “Instead of a public REST API, we provide client libraries in seven languages to ease integration with our gateway. This covers almost every modern web application language. Using our Java library, we can also reach other JVM languages like Clojure and Scala. As you can imagine, these libraries are built on top of a REST API. Occasionally we are asked why we don’t document and expose the REST API, and this inevitably sparks a discussion on our team about the tradeoffs. During these discussions there are three topics that often come up: Security, Platform Support, and Backwards Compatibility. These three topics have kept us in favor of providing client libraries instead of direct access to the low level API.” (by John Downey)

Designing Hypermedia APIs – (video recording of presentation from Øredev) “Ruby on Rails did a lot to bring REST to developers, but its conception leaves the REST devotee feeling a bit empty. “Where’s the hypermedia?” she says. “REST isn’t RPC,” he may cry. In this talk, Steve will explain how to design your APIs so that they truly embrace the web and HTTP. Pros and cons of this approach will be discussed, as well as why many aren’t building things this way yet.” (by Steve Klabnik)

Hypermedia with XHTML – “Back in 2008 at a developer meeting, we discussed the future client side of the Seam framework project. One of major items were rich clients, and how we could go beyond server-rendered JSF pages. The first step was to make creation of HTTP remote interfaces easier, so we integrated with a JAX-RS implementation. There was still an open TODO item, the actual representation of state in hypermedia. Sure, you could easily transform JPA entity data to and from JSON or your own XML dialect, but you wouldn’t really get HATEOAS for free. We thought about using XHTML for hypermedia, as it was already the primary template format for JSF. Since then I’ve worked on other things, but always had this problem as “unsolved” in my mind.” (by Christian Bauer)

Serendipitous Integration With Templated Webhooks – “A templated webhook is exactly what the name implies: a webhook that’s produced from a template. The idea is that your system emits events as JSON that are then applied to user-defined templates to construct the final request. A webhook template can describe each part of the webhook request: Target URL, HTTP Headers, Body. The target URL is a URI Template, and the headers and body are mustache templates. A JSON object can then be passed in which is applied to each part, producing the final request.” (by Mike Kelly)

Combining HTML Hypermedia APIs and Adaptive Web Design – “Thoughts, issues and ideas on combining HTML Hypermedia APIs and Adaptive Web Design. Possibly, in the future, also code examples.”

Composition of RESTful Services – presentation slides about RESTful service composition (by Cesare Pautasso)

OPTIONS is not the method you’re looking for – “Once in a while, people ask me whether they should use the OPTIONS HTTP method, and whether we should try to define formats for discovering resource capabilities with it. I usually say “no.” This is a personal position, nothing “official”. That said, the conversation usually goes like this:” (by Mark Nottingham)

Hypermedia and ASP.NET Web API – presentation slides from a talk at Oredev. Video recording is here. (by Glenn Block)

RESTful API Architecture – Video of an overview of RESTful API architecture. (by Blake Dournaee)

The Costs and Benefits of Building Hypermedia APIs (with Node.js) – (video) Mike Amundsen explores a way of designing hypermedia APIs based on messages instead of URIs, plus documenting, extending, versioning and registering hypermedia designs. (by Mike Amundsen)

What HTTP/2.0 Will Do For You – “An overview of where HTTP/2.0 is at and what it might mean for how we deploy and operate the Web, from the chair of the IETF HTTPbis Working Group.” (by Mark Nottingham)

API Academy – “series of short (5 min) informative videos on topics related to the Web, APIs, and solution design/implementation.” (by Mike Amundsen and Ronnie Mitra)

The Web engineer’s online toolbox – “I wanted to compile a list of online, Web-based tools that Web engineers can use for their work in development, testing, debugging and documentation. The requirements for a tool to make the list are: must be a live Web application (no extensions or apps you have to host yourself), free to use (some kind of free plan available), generic applicability (not usable only for a specific application/platform), and must be useful to Web engineers (not just for Web site design).” (disclaimer: I am the author of this post) (by Ivan Zuzak)

“Such a rich set of affordances” – A Hypermedia Tale – video of a talk given at the Defrag Conference 2012 (by Mike Amundsen)

I got 99 problems, but ReST ain’t one – (slides) “Review of Web, Query, and HATEOAS designs many call ReST. Motivations behind choices.” (by Adrian Cole)

The HTTP OPTIONS method and potential for self-describing RESTful APIs – “The OPTIONS method is a somewhat obscure part of the HTTP standard that could be used today with a strong impact on the interconnectedness of the interwebs while requiring minimal effort. It’s role is well defined in RFC2616, yet no web services that I can find are taking advantage of it.” (by Zac Stewart)

Caching POST– “So, POST caching is possible, but it’s only useful in a very narrow way — when you want to use the result of the POST to serve future GETs for the same URI. And, as the spec says, it’s not commonly implemented. See Subbu’s example and links to discussion at the time for more information.” (by MArk Nottingham)

The Hypermedia Debate – “We liked JSON but realized there was no standard for how to represent hypermedia. XML has Atom links, which most people seem to favor, but JSON was still in flux. The two main contenders at the time appeared to be Collection+JSON and HAL. We almost decided to ditch a vendor specific media types in favor of these, but were confused how the client would know what they were getting back, other than a data payload stuffed inside a known hypermedia-ready envelope.” (by Luke Stokes)

My Pain With a Non Hypermedia HTTP API– “What matters for this post is that our current API design follows a similar approach to the ones known from Facebook, Twitter or GitHub, which is basically Remote Procedure Call (RPC) over HTTP with extensive out of band documentation. That’s what all the large API providers seem to do. .. And that’s where I think hypermedia can help. It seems to change the game plan between an API provider and its consumers in a way that naturally enforces loose coupling.” (by Björn Rochel)

Versioning RESTful Services – “First, note that while the focus here is on RESTful services and not just HTTP services, the same principles can potentially apply to HTTP services that are not fully RESTful (for example, HTTP services that do not use hypermedia as a state transition mechanism). When talking about versioning, the most important question to ask is “what are you wanting to version?” The logical extension to this question is, “what is the contract between your service and client?” This is naturally important since the contract is the thing you want to version.” (by Howard Dierking)

Events and publications

13th International Conference on Web Information Systems Engineering – The WISE 2012 conference was held in Paphos, Cyprus, on November 28-30, 2012. The program from the conference is here and the proceedings here.

The ACM Hypertext and Social Media conference – The 2012 Hypertext conference will be held in Paris, France from May 1 to May 3 2013. You can view the CFP here.

Interesting tweets

@progrium – “I’m sad that a lot of the extensibility designed into HTTP is rendered useless by proxies.”

@pautasso – “”Roy Fielding looked at the Web and saw it was good.” Jason Bloomberg #techsym2012#rest

@dret – “reading #REST discussion threads, and the worst possible insult seems to be: “THIS IS COUPLING!” from now on we should all say “the c-thing””

@pkeane – “re: HATEAOS, JSON lack of forms much more problematic than lack of links”

@dret – “#REST requires us to design media types as a mix of data models and interaction models. how we do that is up to us, but we have to do it.”

@progrium – “Node.js community reinvents control flows and IO streams. Reminds me how SOAP community reinvented HTTP verbs in WS-Transfer.”

@pkeane – “baffled by talk of “restful endpoints”. Huh? And zero mention/understanding of hypermedia :(. #javascript #mvc

@pkeane – “I’m pretty sure that you could build v. cool hypermedia-driven rich javascript UI’s w/ careful design of json+<…> media type”

@dret – “if your #REST services make assumptions about the metamodel or model on client or server beyond the service surface: that’s bad model creep.”

@dret – “somebody talking of “RESTful startpoints” probably gets #REST, somebody talking of “RESTful endpoints” probably doesn’t.”


One Comment

  1. Yesterday i spent 300 dollars for platinium rulette system , i hope that i will earn my first money

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: