[DataLink] access_url vs accessURL
Patrick Dowler
patrick.dowler at nrc-cnrc.gc.ca
Mon Sep 15 22:20:26 CEST 2014
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
(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.
** 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.
--
Patrick Dowler
Canadian Astronomy Data Centre
National Research Council Canada
5071 West Saanich Road
Victoria, BC V9E 2E7
250-363-0044 (office) 250-363-0045 (fax)
More information about the dal
mailing list