- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Mon, 7 Nov 2016 21:34:15 +0100
- To: <public-hydra@w3.org>
- Cc: "'Christopher Johnson'" <chjohnson39@gmail.com>
Hi Christopher, On Sunday, November 6, 2016 7:40 PM, Christopher Johnson wrote: > Hello list, > > I am trying to build an hydra-core enabled API that handles > IriTemplates. I apologize in advance if the following is out of your > normal topic scope or is too specific.. Any kind of questions related to Hydra are very welcome on this list. I have to admit though, that I have troubles understanding yours :-) Could you please explain what you would like to achieve resp. what you would like to describe in Hydra? Or are you asking how a client implementation is supposed to deal with the JSON-LD below? Btw. could you please join the Hydra W3C Community Group. Details can be found at http://www.hydra-cg.com/#community > I should preface that I have > modified the hydra-core javascript implementation to work for my use > case. > > I have a few questions regarding norms for defining supportedOperation > method and expected for an TemplatedLink property in the > apiDocumentation. > > I have constructed the following procedure: > 1) loadDocument > 2) find declared TemplatedLink property supported operation in document > properties. > 3) find TemplatedLink property class with the api > 4) define the templated link from the TemplatedLink class template property > 4) parse the template link with expected variable(s). (I am using > uri-templates to do this). > 5) invoke supported operation method and pass parsed templated link a > content. > 6) have httpClient.rawInvoke check if expected is IriTemplate class, and > if so, set url = content. > > Step #6 is where my questions arise. Is there a convention for an > expected template type check or supportedOperation method for template > requests by httpClient? Should IriTemplate be declared as a > hydra:Class or something else in the apiDocumentation? (It seems that > only hydra:Class classes can be declared as "expected".) Also, since > I did not want to use a domain specific IriTemplate class check in the > core client, I have reinstantiated the core class in my api, which is > probably not correct. > > For reference, here is part of the apiDocumentation for the above: > "supportedClass": [ > { > "@id": "http://service.b-ol.de/api/hydra.json#EntryPoint", > {...} > "supportedProperty": [ > { > "property": { > "@id": "http://iiif.io/api/presentation/2#Manifest", > "@type": "TemplatedLink", > "http://www..w3.org/2000/01/rdf-schema#label": "IIIF Manifest", > "domain": "http://service.b-ol.de/api/hydra.json#EntryPoint", > "range": "Resource", > "supportedOperation": [ > { > "@id": "http://iiif.io/api/presentation/2#Manifest/GET", > "@type": "Operation", > "expects": "http://www.w3.org/ns/hydra/core#IriTemplate", > "method": "GET", > "http://www.w3.org/2000/01/rdf-schema#label": "Retrieves a Manifest Resource", > "returns": "http://www.w3.org/ns/hydra/core#Resource" > } > ] > } > } > ] > }, > { > "@id": "http://iiif.io/api/presentation/2#Manifest", > "@type": "Class", > "template": "http://service.b-ol.de/api/graphs/manifest.nt?node={node}", > "http://www.w3.org/2000/01/rdf-schema#comment": "A IIIF Manifest", > "http://www.w3..org/2000/01/rdf-schema#label": "Manifest", > "supportedOperation": { > "@id": "http://service.b-ol.de/api/hydra.json#EntryPoint/GET", > "@type": "Operation", > "http://www.w3.org/2000/01/rdf-schema#label": "The APIs main entry point.", > "method": "GET", > "returns": { > "@id": "http://iiif.io/api/presentation/2#Manifest" > }, > "statusCodes": [] > } > }, > { > "@id": "http://www.w3.org/ns/hydra/core#IriTemplate", > "@type": "Class", > "template": "http://service.b-ol.de/api/hydra.json#EntryPoint/graphs/{query}?node={node}", > "variableRepresentation": "BasicRepresentation", > "mapping": [ > { > "@type": "IriTemplateMapping", > "variable": "query", > "required": false > }, > { > "@type": "IriTemplateMapping", > "variable": "node", > "required": true > } > ] > } > ] > > Thanks for your assistance, > Christopher Johnson -- Markus Lanthaler @markuslanthaler
Received on Monday, 7 November 2016 20:34:50 UTC