Resources, Not Data
We need to stop trying to understand REST in terms of data-centric programming paradigms. The result will be better-designed APIs.
Continue reading {Resources, Not Data}
A University API
BYU is designing an API that reflects the true business processes of the university and its fundamental resources. This post describes why and how we're doing that.
Continue reading {A University API}
Twitter and the OAuthalypse: A RESTful Misfire
Yesterday was the OAuthalypse--the day when Twitter stopped accepting HTTP Basic authorizations on theis API. I had a few apps break--like almost everything I've done with Twitter. To get them back working I'll have to spend some time on each moving them over to OAuth. For some that won't be hard--they're already using a library that supports OAuth. For others it will be more work. All of them are single user apps (like the UtahPolitics retweeter and so will use the OAuth single token pattern. The reason for moving to OAuth is so that apps won't need to ask
Continue reading {Twitter and the OAuthalypse: A RESTful Misfire}
Using XRDS
Back when people were trying to bring OpenID, LID, and i-names together, something called Yadis was born. At the time, it was all pretty abstract to me, but over time I've come to understand more of the details. Yadis was a discovery protocol for identifiers that was based on XRDS, or eXtensible Resource DescriptorS. The basic idea was that when you resolved an identifier, you'd get back an XRDS document that would tell you which authentication service the identifier was associated with. I'll talk about the details of how this happens in a minute. First, let's talk about why
Continue reading {Using XRDS}
Web Services and IDEA
Sears Tower(click to enlarge) I spent yesterday in Chicago giving a talk on Web services to the Illinois Data Exchange Affiliates (IDEA). IDEA is a group of seven northern Illinois counties and over 200 municipal governments that was formed to promote data exchange for eGovernment. Greg Sanders of the Chicago Metropolitan Agency for Planning is one of the chief instigators of IDEA and asked me to come speak. I had a blast and really enjoyed the trip. The basic idea: simple, inexpensive design rules for Web sites can lead to big data exchange opportunities. Start with public data, do simple
Continue reading {Web Services and IDEA}
Crying Out for a RESTful Service Interface Description Language
Dave Rosenberg is frustrated with Web 2.0 apps that don't play well together: If you haven't seen any of the 37 Signals stuff, it's great. Easy to use, well-designed etc. But even they don't offer a completely integrated suite of all of their own apps. I need Basecamp integrated with MyYahoo and Salesforce.com to really be productive. I want all my stuff on one page at one URL, in sync across multiple computers and visible on my handheld. This was the promise of portals but it remains unfulfilled. ... To me the big opportunity of Web 2.0 development is
Continue reading {Crying Out for a RESTful Service Interface Description Language}
Using HTTP Authentication
HTTP authentication has been pigeonholed into protecting back-end systems and whole sites. In fact, it's much more versatile, as this tutorial shows. Ever wanted to use HTTP authentication from a Web form or allow HTTP authenticated users to logout? This shows you how using standard server-side techniques and very little code hacking.
Continue reading {Using HTTP Authentication}
The Tolerance Continuum
Dion Hitchcliffe has a nice graphic on his blog showing a tolerance continuum. Notice at the top are things like HTML, RSS and folkonomies. At the bottom are ontologies, RDF, and enterprise applications like CRM and ERP. I spoke with Dion yesterday and he talked to me about governance mistakes he sees clients making. The number one problem is something he called the "tyranny of the ‘MUST understand' flag." You get a SOAP-based Web service loaded up with WS-* header elements all tagged 'MUST understand' and you end up with something every-bit as much a central command and control
Continue reading {The Tolerance Continuum}
Document Style and State Transfer
Mark Baker has a nice, short write-up of how document style Web services differ from RPC-style and how that's related to state transfer (the last part of Representational State Transfer, or REST). An interesting point that Mark makes is that multi-method protocols (like HTTP) affect the semantics of the message. POSTing a message has different meaning that PUTting the same message. While this seems obvious after you say it, I'm not sure it's a point explicitly recognized by some people.
Continue reading {Document Style and State Transfer}
Learning from the Web
I've heard Adam Bosworth talk about the lessons we should have learned from the web about semi structured data, but it didn't really hit home for me until I read his arguments in this article in Queue. I read it in hardcopy 6 weeks ago or so and it's finally online so I can link to it. He lists five "unintuitive" lessons: Simple, relaxed, sloppily extensible text formats and protocols often work better than complex and efficient binary ones. It is worth making things simple enough that one can harness Moore's law in parallel. This means that a system
Continue reading {Learning from the Web}
IIW2005: Johannes Ernst on LID
Johannes starts off with a discussion of REST because that's critical to his design principles for LID. He describes it this way: "everything that matters on the Internet has a URL, can be bookmarked, can be found via Google, can be hyperlinked, can be tagged, and can be accessed with a browser." People got very argumentative here. REST discussions do that. Johannes' conclusion: people need URLs. Similar argument to Drummond and XRIs, but with a different conclusion. Johannes gives a use case based on Doc's Company Relationship Management scenario and me trying to find a hotel in Berkeley. This
Continue reading {IIW2005: Johannes Ernst on LID}





