[DataLink] access_url vs accessURL
François Bonnarel
francois.bonnarel at astro.unistra.fr
Wed Sep 17 15:36:16 CEST 2014
Hi all,
Le 15/09/2014 22:20, Patrick Dowler a écrit :
>
> Recap: In the {links} resource there is a column access_url with either:
>
> 1. a usable link (service_def == null)
>
> 2. a link to a service, but it needs more input (service_def refers to
> a service descriptor resource that tells you about those extra input
> parameters
>
> Nothing here effect the use of service descriptors per se: those are
> well defined. Specifically, if the descriptor has a standardID, then
> the accessURL *must* be the base URL to that capability.
>
> In the case of #2, the spec allows the access_url in the {links} to be
> present when service_def != null and to be different from the base
> accessURL in the referenced service descriptor. This is intended to be
> convenient. Some examples:
>
> (i) the service embeds RUNID parameter in the access_url so it doesn't
> need an extra FIELD/PARAM with RUNID values and an extra input param
> in the service for RUNID... could be done rigourously but it seems
> convenient to unclutter the {links} table and service descriptor
>
As far as I catch you, I think there is also use cases where :
(i bis) the service is parameter based and you want to freeze some
PARAM values (some not all) for a SUBSET of the DATASETS in the response
exempli gratia : your preview custom service gives potentially two
FORMAT = HCOMP and JPEG. But actually you deliver HCOMP only if you get
it stored. You don't provide it if uou have to compute it. So you have a
service with several parameters but some time you want to attach an URL
with FORMAT=JPEG only.
I have other use cases like this in mind where people would like to play
with accessURL = root base URL, service descriptor describing all the
params and access_url partially fixing some of them.
> (ii) the service is RESTful (eg vospace) so the provider constructs
> the full path in the {links} table access_url and, as required,
> describes the vospace {nodes} resource in the service (eg describes
> the params to the node, like view, uri, limit, etc)... again, provider
> doesn't need the cutter of a FIELD with "vos" URIs that wouldn't help
> anyway since the values are not used as parameter values when calling
> the {nodes} resource... (see folowup email about RESTful services)
>
>
>
> ** Proposed change: The simple way out is to say that in the {links}
> table there is an access_url *or* a service_def, but not both. Then
> all clients will use the access_url directly or construct a URL via
> the service_def. Providers could still embed (opaque) params in the
> accessURL, but the variable ones would have to be referred to and
> pulled from wherever they are located. Consider this the "normalised"
> solution with no redundant ways to do things; this should be the
> preferred choice in a 1.0 spec.
>
OK, I see I will have to live with this one. The use case I had in mind
(se above) can be managed by definng several service descriptors with
the same fundamental set of Parameters. Less elegant but wil work
I agree with the proposed change
Best regards
François
>
> ** smallish side issue: we should make it clear that an inut parameter
> reference to a FIELD also could refer to a PARAM with a constant
> value. That is how a prvider would handle something like RUNID without
> cluttering the {links} table. It is probably implied by the original
> use/meaning of PARAM, but that should be clarified too.
>
>
>
>
More information about the dal
mailing list