To send simple GET request the following command can be used:
> curl http://restconf-dev/restconf/data/restconf-state/capabilities \ -H "Accept:application/yang-data+xml" <?xml version="1.0" encoding="UTF-8"?> <capabilities xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"> <capability>urn:ietf:params:restconf:capability:depth:1.0</capability> <capability>urn:ietf:params:restconf:capability:with-defaults:1.0</capability> <capability>urn:ietf:params:restconf:capability:defaults:1.0?basic-mode=explicit</capability> <capability>urn:ietf:params:restconf:capability:fields:1.0</capability> <capability>urn:ietf:params:restconf:capability:replay:1.0</capability> <capability>urn:ietf:params:restconf:capability:filter:1.0</capability> <capability>urn:ietf:params:restconf:capability:yang-patch:1.0</capability> </capabilities>
In order to retrieve data in different encoding use --header (-H) parameter with specific Accept header value (XML or JSON).
The following request "Accepts" replies in JSON encoding:
> curl http://restconf-dev/restconf/data/restconf-state/capabilities \
-H "Accept:application/yang-data+json"
{
"capabilities": {
"capability": [
"urn:ietf:params:restconf:capability:depth:1.0",
"urn:ietf:params:restconf:capability:with-defaults:1.0",
"urn:ietf:params:restconf:capability:defaults:1.0?basic-mode=explicit",
"urn:ietf:params:restconf:capability:fields:1.0",
"urn:ietf:params:restconf:capability:replay:1.0",
"urn:ietf:params:restconf:capability:filter:1.0",
"urn:ietf:params:restconf:capability:yang-patch:1.0"
]
}
}The same request with RESTCONF query parameters, for example, "depth" would look as follows:
> curl http://restconf-dev/restconf/data/restconf-state/capabilities?depth=1 <?xml version="1.0" encoding="UTF-8"?> <capabilities xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring"/>
To send EDIT request to create a new value "uint32.1" of type "uint32" and set to value 16:
> curl -i \
-H "Accept: application/yang-data+json" \
-H "Content-Type: application/json" \
-X POST -d '{"uint16.1":16}' \
http://restconf-dev/restconf/data
HTTP/1.1 201 Created
Date: Thu, 21 Apr 2016 21:22:23 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache
Pragma: no-cache
Location: http://restconf-dev/restconf/data/uint16.1
Last-Modified: Thu, 21 Apr 2016 21:22:24 GMT
ETag: 57472
Content-Length: 0
To Receive RESTCONF Notifications subscribe to event stream by GET request:
> curl http://restconf-dev/restconf/stream -H "Accept:text/event-stream" data: data: <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> data: <eventTime>2016-04-21T21:04:51Z</eventTime> data: <netconf-config-change xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"> data: <changed-by> data: <username>yumaworks</username> data: <session-id>4</session-id> data: <source-host>127.0.0.1</source-host> data: </changed-by> data: <datastore>running</datastore> data: <edit> data: <target data: xmlns:t="http://netconfcentral.org/ns/test">/t:uint32.1</target> data: <operation>create</operation> data: </edit> data: </netconf-config-change> data: </notification>
To send GET Request using TLS transport:
> curl --cert /ssl/client.crt:password \
--key /ssl/clients.key \
--cacert /ssl/ca.crt \
https://restconf-dev/restconf/yang-library-version
{
"yang-library-version":"2016-06-21"
}To CREATE a new entry using PUT method and an input file use the following request:
> curl -vX PUT -d @$HOME/input.json \ --header "Content-Type: application/yang-data+json" \ http://localhost/restconf/data/ietf-interfaces:interfaces/interface=test2
Where, input.json:
{
"interface": [
{
"name": "test1",
"type": "iana-if-type:l2vlan"
}
]
}To CREATE a new entry using PATCH method and an input file use the following request:
> curl -vX patch -d @$HOME/mode.json \ --header "Content-Type: application/yang-data+json" \ http://localhost/restconf/data/ietf-interfaces:interfaces
Where, input.json:
{
"interfaces" : {
"interface": [
{
"name": "test1",
"type": "iana-if-type:other"
}
]
}
}