- From: Urs Holzer <urs@andonyar.com>
- Date: Thu, 8 Oct 2015 00:17:19 +0200
- To: Ruben Verborgh <ruben.verborgh@ugent.be>
- Cc: semantic-web <semantic-web@w3.org>
Thanks Ruben, nice timing On Tue, Oct 06, 2015 at 02:12:06PM +0200, Ruben Verborgh wrote: > [...] > I think servers should also describe API responses to clients, > similar to how websites for people contain text and links > that describe much more than just the raw data itself. > And RDF graphs offer a handy way to combine data > with context and controls in a single response. > This would enable clients to do more with an API. > > I've sketched such a solution in more detail here: > http://ruben.verborgh.org/blog/2015/10/06/turtles-all-the-way-down/ > Your feedback and thoughts are most welcome. A few hours before reading your post, I announced a talk about REST at my workplace, scheduled for next week. I read Fielding's dissertation to figure out the architectural constraints imposed by REST. Furthermore, a coworker pointed me to HAL[1] (JSON Hypertext Application Language). While HAL approaches the "Hyerpmedia as the engine of application state"-constraint, it falls short when it comes to self-descriptive messages. Take the following example from [1]: { "_links": { "self": { "href": "/orders/523" }, "warehouse": { "href": "/warehouse/56" }, "invoice": { "href": "/invoices/873" } }, "currency": "USD", "status": "shipped", "total": 10.20 } Even for a human, this is not self-descriptive at all. During my talk, I wanted to make a better suggestion using RDF. Thanks to you, I won't have to work it out on my own. :-) I believe, to realize a REST interface targetted at machine consumption, both, the vocabulary used (currency, status, etc.) and the controls need to be described in a machine-readable form. RDF is perfect to describe the vocabulary and your solution allows mixing data and controls. I think I am now much closer to undertanding REST and actually implementing a REST interface in a real-life application. So, thanks for your work. Greetings Urs [1]: https://tools.ietf.org/html/draft-kelly-json-hal-07
Received on Wednesday, 7 October 2015 22:17:50 UTC