(I'm new to the Netconf mailing list, so it's possible that this issue
has already been disposed of.)

Looking at draft-ietf-netconf-restconf-13, it looks like the RFC 7320
mechanism is used to find the root URL, from which all the Restconf URLs
are derived by appending path components as specified in the draft.

But looking at RFC 6570, which is referenced by both 7320 and the draft,
it seems that specifying path components to be appended a configured
base URL is no longer best practice, because it requires the HTTP server
to be able to connect all those URLs to the Restconf server despite
their different paths.  It seems that the new, improved method is to
advertise a URL template, and the client should use the template and the
Restconf "additional path" to construct the URL to be used.

E.g., now, the second example in section 3.1 shows how the Restconf root
is obtained:

      Request
      -------
      GET /.well-known/host-meta HTTP/1.1
      Host: example.com
      Accept: application/xrd+xml

      Response
      --------
      HTTP/1.1 200 OK
      Content-Type: application/xrd+xml
      Content-Length: nnn

      <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
          <Link rel='restconf' href='/top/restconf'/>
      </XRD>

and used, with the sub-URL "operations":

      Request
      -------
      GET /top/restconf/operations  HTTP/1.1
      Host: example.com
      Accept: application/yang.api+json

RFC 6570 seems to suggest that the first lookup should return a URL
template:

      Request
      -------
      GET /.well-known/host-meta HTTP/1.1
      Host: example.com
      Accept: application/xrd+xml

      Response
      --------
      HTTP/1.1 200 OK
      Content-Type: application/xrd+xml
      Content-Length: nnn

      <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
          <Link rel='restconf' 
href='http://example.com/top/restconf/{resource}'/>
      </XRD>

The value of this being that a different server might return the
template 'http://example.com/top/restconf{?resource}', causing the
second request to use the URL
'http://example.com/top/restconf?resource=operations'.

Although this probably requires a revision of the href attribute of the
Link element, since it now carries a URL template rather than a URL.

Dale

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to