Next in thread → Next in month →

Re: [oslc-core] Applying OSLC to products that already have a REST/hypermedia API

From
Steve K Speicher <>
Date
2015-02-20T20:56:05+00:00
ID
Thread
Re: [oslc-core] Applying OSLC to products that already have a REST/hypermedia API
I agree and shared some thinking on this
[1], which expands on Martin Fowler's work.  I also look like it as
OSLC provides additional capabilities on existing REST APIs, so it should
naturally layer these capabilities on -- when needed.

[1]: http://stevespeicher.blogspot.com/2014/12/web-api-maturity-model.html

Thanks,

Steve Speicher

IBM Rational Software

OSLC - Lifecycle integration inspired by the web -> http://open-services.net

<> wrote on 02/19/2015
11:12:22 AM:

> From: Martin P Pain <>

> To: "OASIS OSLC Core TC Discussion List"
<>

> Date: 02/19/2015 11:12 AM

> Subject: [oslc-core] Applying OSLC to products
that already have a REST/hypermedia API

> Sent by: <>

> 

> I've seen on more than one occasion (including my own implementation)
the 

> addition of an OSLC API to an existing product resulting in a second
REST 

> API being created, more-or-less duplicating the functionality of the
first. 

> 

> I suggest we should encourage implementors NOT to do this, but to
overlay 

> OSLC on top of their existing API. 

> That is, position OSLC to them as a standard way to describe their
existing 

> REST resources. 

> 

> I also suggest we write some guidance on good ways to do this. For
example, 

> if they have any resources that already list links to other resources
(in 

> plain old XML), then we suggest that if the Accept header contains
an RDF 

> media type at a higher priority than application/xml, that they return
an 

> LDP Container representation of the same. We should also note that
they can 

> have exactly the same HTTP resources as they currently have - even
if they 

> currently represent a list of a certain type of resources as a single

> document containing all its members, they can still do that with OSLC
- one 

> HTTP resource containing multiple RDF resources, probably with hash-URIs.

> 

> Two things I remember from first reading OSLC specs: 

> - Whenever there was a new RDF resource required, my assumption was
that 

> that would be a different HTTP resource (i.e. instead of being an
embedded 

> resource with a hash-URI). (Also I wan't aware of the option to multi-type
a

> single RDF resource, but that applies less here). 

> - Assuming that this would not be compatible with our existing REST
APIs 

> (which was probably more true at 2.0 than now that we're based on
LDP). 

> 

> Also, the Lyo tooling makes it too easy to create an entirely separate
API. 

> I'm hoping to be doing some work with Lyo soon, so may experiment
to see 

> what layers of abstraction we could have in there to make it easier
for 

> implementors to get exactly what they need to plug into their existing
API 

> using their existing HTTP server framework. 

> 

> In some cases, their REST API may be truly incompatible. In which
case my 

> personal suggestion would be to decide to migrate towards a hypermedia-based

> REST API, using OSLC from the start, and deprecate their old one if
they 

> can. i.e. move towards "the glory of REST": http://martinfowler.com/

> articles/richardsonMaturityModel.html#images_richardsonMaturityModel_overview.png

> 

> Martin

> Unless stated otherwise above:

> IBM United Kingdom Limited - Registered in England and Wales with
number 741598. 

> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire
PO6 3AU
Next in thread → Next in month →