Showing results for 
Search instead for 
Did you mean: 

REST API Troubleshooting


REST API Troubleshooting



Every interface to the APIC goes through the REST API - CLI, GUI, Python SDK, etc.  When something does not appear to be working properly with the REST API, it can have significant impact on the system as a whole because it is the ONLY interface we have to the APIC.  Knowing how to debug and troubleshoot the REST API can be extremely useful.


This document will detail some little known REST API query strings as well as indicate which logs on the APIC can be monitored to see what is going on with the REST API.


REST API Troubleshooting


All REST API queries go through the web server on node.  Logs for web server are saved on the specific APIC or nodes that the REST APIC queries are being run against at:


On the APIC:
On fabric nodes:

These logs role over, so if something occurred a while ago you may have to go back in time and look at files that are compressed.


Having the REST API return what was modified by the POST request


You can have POST requests return what was modified rather than an empty imdata post using a rsp-subtree option set to full (it will return the entire modified Mo), modified (it will return only what was modified), or no (the default behavior of returning nothing).  This can be useful in cases beyond debugging as well where you need the results of a dynamic configuration.  This does have limits though.  For example you can not get a full subtree for the polUni Mo for both GET or POST.


Here is an example -


<fvTenant name="Test3" />



    <fvTenant childAction="deleteNonPresent" 
        descr="" dn="uni/tn-Test3" 
        lcOwn="local" modTs="2014-07-16T18:27:11.408+00:00" 
        name="Test3" ownerKey="" ownerTag="" rn="" status="created" uid="15374">                 
            childAction="deleteNonPresent" forceResolve="no" lcOwn="local" 
            monPolDn="" rType="mo" rn="rsTenantMonPol"
            state="unformed" stateQual="none" status="created" 
            tCl="monEPGPol" tContextDn="" tDn="" tRn="" 
            tType="name" tnMonEPGPolName="" uid="0" />

Having the REST API return what is configured on a MO


You can have a GET request return just the configuration of a Managed Object (MO) by using the rsp-subtree=full&rsp-prop-include=config-only options.


For example:






<imdata totalCount="1">
    <fvTenant descr="" dn="uni/tn-Test3" name="Test3" ownerKey="" ownerTag="">
        <fvRsTenantMonPol tnMonEPGPolName="" />



Hi Expert 

Great Post , this helped me to get a REST GET in Postman to work , where can i get more info about this details to learn how to ask the APIC after information about exampels Teanant and interface info like VPC or mac addres tables it seems quiet hard tto get this info out of the APIC if you don´t have read the whole SDK


Maybe this will help: - at least from page 49 and forward.


You can also use the API Inspector from the GUI to get more familiarized with the structure if you haven't already, the first part describes how to use it effectively.




How can i see contents log file ? 




CreatePlease to create content
Content for Community-Ad

Cisco COVID-19 Survey