- From: David Wood <david@3roundstones.com>
- Date: Sun, 9 Sep 2012 10:31:17 -0400
- To: Nicholas Humfrey <nicholas.humfrey@bbc.co.uk>
- Cc: <public-lod@w3.org>
Useful, indeed. Thanks, Nick! Regards, Dave On Sep 9, 2012, at 06:46, Nicholas Humfrey <nicholas.humfrey@bbc.co.uk> wrote: > Hello, > > Apologies for a bit a shameless self-promotion but I think it might be of > interest to this group. > > I was recently looking at my WebID: > http://www.aelius.com/njh#me > > And realised that I could have this instead and save a few bytes ;-) > http://njh.me/ > > So I bought njh.me and I am now using it as the identifier for me, while > keeping my homepage at http://www.aelius.com/njh/ > > > > Doing content negotiation properly is still badly supported by most > languages and environments. I wanted to use a lightweight MVC framework and > chose Slim. Slim has had content negotiation on its backlog for quite a long > time but I decided that if I wanted to get it working any time soon, I was > going to have to implement it myself. > > My fork is here: > https://github.com/njh/Slim/tree/negotiation > > And there is a pull request to bring it into master here: > https://github.com/codeguy/Slim/pull/376 > > > The negotiation API is very simple and allows you to do this: > $format = $app->respondTo('html', 'rdf', 'ttl', 'json'); > > The list of suffixes is the file formats that are supported by the > application. They are ordered by the server's preference of format. The > client can either use an Accept header to select the desired format or force > a specific format by appending a suffix to the URL, for example: > > http://njh.me/foaf.rdf > > If you make a request with no Accept header and no suffix, then the first > format in the list will be returned (HTML). The client can use q values to > rank its preferred format. > > > The Slim application for njh.me is only 32 lines long and it hopefully very > easy to read: > https://github.com/njh/njh.me/blob/master/public/index.php > > It depends upon Composer, Slim and EasyRdf. There are some PHPUnit tests to > ensure the it behaves correctly. > > Web browsers requesting http://njh.me/ will be redirected, using a 303 to my > homepage. A Semweb clients setting a Accept: application/rdf+xml will be > sent a 303 redirect to http://njh.me/foaf.rdf, which in turn will return > RDF/XML. > > > Hopefully this is a pattern that people can re-use and apply to more complex > examples. > > > nick. > > > http://www.bbc.co.uk/ > This e-mail (and any attachments) is confidential and may contain personal views which are not the views of the BBC unless specifically stated. > If you have received it in error, please delete it from your system. > Do not use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately. > Please note that the BBC monitors e-mails sent or received. > Further communication will signify your consent to this. > >
Received on Sunday, 9 September 2012 14:31:45 UTC