Junos® OS REST API Guide
https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/rest-api/rest-api.pdf
| For an rpc command, the general format of the endpoints is: scheme://device-name:port/rpc/method[@attributes]/params
|
---|
default ports: http: 3000 https: 3443 |
Code Block |
---|
| vagrant@vqfx-re> show configuration system services
. . .
rest {
http {
port 8080;
}
enable-explorer;
}
vagrant@vqfx-re> show configuration system services | display set
set system services ssh root-login allow
set system services netconf ssh
set system services rest http port 8080
set system services rest enable-explorer
|
|
work out the rpc command |
Code Block |
---|
| root> show interfaces | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/19.3R0/junos">
<rpc>
<get-interface-information>
</get-interface-information>
</rpc>
<cli>
<banner></banner>
</cli>
</rpc-reply>
root>
root> show interfaces ge-0/0/0.0 | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/19.3R0/junos">
<rpc>
<get-interface-information>
<interface-name>ge-0/0/0.0</interface-name>
</get-interface-information>
</rpc>
<cli>
<banner></banner>
</cli>
</rpc-reply>
root> show interfaces ge-0/0/0.0 terse | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/19.3R0/junos">
<rpc>
<get-interface-information>
<terse/>
<interface-name>ge-0/0/0.0</interface-name>
</get-interface-information>
</rpc>
<cli>
<banner></banner>
</cli>
</rpc-reply>
|
|
show interfaces | /rpc/get-interface-information /rpc/get-interface-information?terse |
show interfaces ge-0/0/0.0 | /rpc/get-interface-information?interface-name=ge-0/0/1 /rpc/get-interface-information?terse&interface-name=ge-0/0/1 |
show interfaces ge-0/0/0.0 terse | /rpc/get-interface-information |
|
|
With Postman | Image Added Image Added |
Config using RPC call |
|
---|
| show configuration system host-name | display xml
Code Block |
---|
| juniper@SDK-vSRX_JCL_EWF> show configuration system host-name | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.1R0/junos">
<configuration junos:commit-seconds="1605466556" junos:commit-localtime="2020-11-15 18:55:56 UTC" junos:commit-user="juniper">
<system>
<host-name>SDK-vSRX_JCL_EWF</host-name>
</system>
</configuration>
<cli>
<banner></banner>
</cli>
</rpc-reply>
|
Extract the configuration part: <configuration ><system> <host-name>SDK-vSRX_JCL_EWF</host-name> </system></configuration>
|
curl config |
Code Block |
---|
| curl -u "username:password" http://device-name:port/rpc?stop-on-error=1
-d "<lock-configuration/>
<load-configuration>
<configuration><system><host-name>foo</host-name></system></configuration>
</load-configuration>
<commit/>
<unlock-configuration/>" |
|
REST-API explorer | Image Added |
check the cURL commands | Image Added |
Check the response | Image Added
|
|
|