2016-04-07 11 views
1

Es ist mir klar, wie Sie auf einen list Artikel (Restconf Entwurf) verweisen, aber es ist nicht klar, wie man sich auf eine bestimmte leaf-list entry beziehen. Zum Beispiel die folgende Definition gegeben:Zugriff auf einen bestimmten Blatt-Liste Eintrag mit Yang Restconf

module x { 
    container y { 
    leaf-list z; 
    } 
} 

and if I have the following data in the system 

<y> 
    <z>a</z> 
    <z>b</z> 
    <z>d</z> 
</y> 

wie füge ich ein c in der dritten Position?

Restconf hat die 'einfügen' und 'Punkt', die die Ressource URI nimmt. Aber was ist die Ressource uri, um ein Blattlistenelement zu identifizieren? Wenn ich auf den zweiten Eintrag verweisen möchte, gilt Folgendes?

/y/z=b 

Antwort

1

Jeder Blattlisteneintrag ist eine separate Datenressource in Restconf-Draft-10.

Container, Blätter, Blattlisteneinträge, Listeneinträge, anydata und anyxml Knoten sind Datenressourcen.

Dies ist, was Section 3.5 über leaf-list Einträge sagt. es definiert ferner Codierung von Daten leaf-list Resource Identifiers in 5.3.1:

Wenn ein Datenknoten in dem Pfadausdruck ein YANG blattListenKnoten ist, dann ist die blattListenWert muss entsprechend den folgenden codiert werden Regeln:

o Die Instanz-ID für die Leaf-Liste muss codiert werden mit ein Pfadsegment [RFC3986].

o Das Pfadsegment wird erstellt, indem der Name der Blattliste gefolgt von einem Zeichen "=" gefolgt vom Wert der Blattliste erstellt wird. (z. B./restconf/data/top-blatlist = fred).

Also, Ihr Beispiel für den zweiten Eintrag wäre es: /restconf/data/x:y/z=b.

Zum Einfügen scheint es unklar zu sein. Es gibt Beispiele im Anhang D des Entwurfs für beide point und insert, aber verwenden Sie eine list anstelle einer leaf-list (beachten Sie, dass beide ordered-by user sein müssen, damit die beiden Parameter in einer Anfrage gültig sind).

D.3.5. "point" Parameter

POST /restconf/data/example-jukebox:jukebox/ 
     library/artist=Foo%20Fighters/album=Wasting%20Light? 
     insert=after&point=%2Fexample-jukebox%3Ajukebox%2F 
     library%2Fartist%3DFoo%20Fighters%2Falbum%3D 
     Wasting%20Light%2Fsong%3DBridge%20Burning HTTP/1.1 
    Host: example.com 
    Content-Type: application/yang.data+json 

    { 
    "example-jukebox:song" : { 
     "name" : "Rope", 
     "location" : "/media/foo/a7/rope.mp3", 
     "format" : "MP3", 
     "length" : 259 
    } 
    }