Via een REST API Prime Infrastructure benaderen

Wist je dat Prime Infrastructure tegenwoordig ook over een REST API beschikt? Waarschijnlijk niet.

Met de steeds groeiende vraag naar een programmeerbare infrastructuur, zoals ook vertaald in ons Digital Network Architecture, hebben we API-calls aan Prime Infrastructure toegevoegd. In tegenstelling tot APIC-EM, waarvan de GUI bovenop de API gebouwd is, levert de Prime Infrastructure API een subset van de totale functionaliteit van het onderliggende platform. De documentatie, inclusief alle API-calls (te filteren op PI-versie), staan online.

Als je bekend bent met het gebruik van API’s, dan kun je na het lezen van deze blog meteen aan de slag met Prime Infrastructure’s API. Mocht je weinig tot geen ervaring met REST API’s hebben, dan adviseer ik je eerst wat basiskennis op te doen (bijvoorbeeld via een learning lab over REST op DevNet), alvorens verder te lezen.

Juiste rechten per gebruikersprofiel

Om een gebruiker API-calls te laten maken, moet hiervoor het gebruikersprofiel over de juiste rechten beschikken.

De volgende rechten zijn hierbij van toepassing:

  • NBI Credential: toegang (read-only) tot device credentials;
  • NBI Read: toegang tot de Read API’s, i.e. alle GET calls;
  • NBI Write: toegang tot de Write API’s, i.e. alle POST, PUT en DELETE calls;
  • North Bound API: toegang tot de Guest User Services API.

Let hierbij op dat wanneer een gebruiker aan één van deze groepen wordt toegevoegd, deze gebruiker niet (meer) op de webGUI van PI in kan loggen!

Authenticatie

Eenmaal voorzien van de juiste rechten, kan de desbetreffende gebruiker API-calls maken. Authenticatie van de gebruiker wordt gedaan door de gebruikersnaam en wachtwoord (gescheiden met een dubbele punt) in Base64 te encoden en als authorisatieheader mee te geven. Bijvoorbeeld:

Authorization : Basic QVBJLXVzZXI6cjNzdEFQSSdzUjBjayE=

Elke API-call moet voorzien zijn van een correcte authorisatie en versleuteld met SSL (HTTPS is verplicht).

Prime Infrastructure kan het antwoord op API-calls zowel in XML- als in JSON-formaat verpakken. Het defaultformaat is XML, maar door .json achter een API-call te plakken, geef je aan JSON te willen ontvangen:

/webacs/api/v1/data/Devices.json

Gefeliciteerd! Je hebt nu alle basisinformatie gelezen om Prime Infrastructure via de REST API te benaderen en de functionaliteit in andere applicaties te integreren. Aangezien je ontzettend veel informatie uit Prime Infrastructure kunt opvragen, zal ik in een toekomstige blogpost ingaan op het manipuleren van de output.

Zoals altijd ben ik erg benieuwd naar je ervaringen en/of feedback!

Laat een reactie achter