REST API's voor netwerkapparaten
Verken hoe u via RESTful API's met netwerkapparaten en -services communiceert voor programmatische besturing en monitoring.
REST API's voor netwerkapparaten is een gratis Linux-netwerken en TCP/IP voor ontwikkelaars-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Linux-netwerken en TCP/IP voor ontwikkelaars. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Linux-netwerken en TCP/IP voor ontwikkelaars bevat in totaal 4 lessen.
Introductie tot netwerk-API's
Welkom! In deze les leer je hoe je netwerkapparaten bestuurt met REST API's. Dit is een krachtige manier om taken te automatiseren die verder gaan dan traditionele opdrachtregelinterfaces (CLI's).
In plaats van opdrachten te typen, kun je gestructureerde berichten naar apparaten sturen, waardoor automatisering veel schaalbaarder en efficiënter wordt.
Wat is REST?
REST staat voor Representational State Transfer. Het is een architectuurstijl voor het ontwerpen van netwerktoepassingen. Het is geen protocol, maar een reeks richtlijnen voor het gedrag van een API.
- Client-server: Scheiding van verantwoordelijkheden.
- Stateloos: Elke aanvraag van een client aan een server moet alle informatie bevatten die nodig is om de aanvraag te begrijpen.
- Cachebaar: Reacties kunnen in de cache worden opgeslagen om de prestaties te verbeteren.
- Eenvormige interface: Een consistente manier om met resources te werken.
Resources en HTTP-methoden
In REST is alles een resource, geïdentificeerd door een URL (Uniform Resource Locator). Voorbeelden zijn /interfaces en /vlans/100.
Je werkt met deze resources via standaard-HTTP-methoden (werkwoorden):
- GET: Gegevens uit een resource ophalen.
- POST: Een nieuwe resource maken.
- PUT: Een bestaande resource bijwerken (of maken als deze niet bestaat).
- DELETE: Een resource verwijderen.
Gegevensindelingen: JSON en XML
Bij interactie met REST API's worden gegevens meestal uitgewisseld in een gestructureerde indeling. De meest voorkomende indelingen zijn JSON (JavaScript Object Notation) en XML (Extensible Markup Language).
JSON heeft tegenwoordig vaak de voorkeur vanwege de eenvoud en leesbaarheid. Hier is een klein JSON-voorbeeld:
{"interface": "GigabitEthernet1", "status": "up"}Hierin staan de naam van de interface en de huidige status.
API's van netwerkapparaten
Veel moderne netwerkapparaten van leveranciers zoals Cisco, Juniper, Arista en andere bieden REST API's aan. Met deze API's kun je programmatisch hun status opvragen, configuraties ophalen en zelfs configuratiewijzigingen uitvoeren.
De API van elke leverancier heeft een eigen structuur en eigen eindpunten. Raadpleeg daarom altijd de officiële documentatie!
De Python-bibliotheek `requests`
Voor Python is de bibliotheek requests het standaardhulpmiddel voor het uitvoeren van HTTP-aanvragen naar webservices en REST API's. De bibliotheek vereenvoudigt het verzenden van aanvragen en het verwerken van reacties.
Je installeert deze meestal met pip:
pip install requestsDaarna kun je de bibliotheek in je Python-scripts importeren.
Een GET-aanvraag uitvoeren
We bekijken hoe je een eenvoudige GET-aanvraag uitvoert om gegevens uit een openbare API op te halen. We gebruiken een test-API om een item uit een takenlijst op te halen. Dit simuleert het ophalen van informatie van een netwerkapparaat.
Probeer dit voorbeeld uit te voeren:
import requests
def main():
# This is a public API for testing
api_url = "https://jsonplaceholder.typicode.com/todos/1"
print("Fetching a todo item...")
try:
response = requests.get(api_url)
response.raise_for_status() # Check for HTTP errors
data = response.json() # Parse JSON
print("\nSuccessfully fetched data:")
print(f"User ID: {data['userId']}")
print(f"ID: {data['id']}")
print(f"Title: {data['title']}")
print(f"Completed: {data['completed']}")
except requests.exceptions.RequestException as err:
print(f"An error occurred: {err}")
if __name__ == "__main__":
main()POST- en PUT-aanvragen
Terwijl GET gegevens ophaalt, worden POST en PUT gebruikt om gegevens naar de API te sturen en resources te maken of bij te werken. Je kunt bijvoorbeeld POST gebruiken om een nieuwe VLAN te maken of PUT om de snelheid van een interface te wijzigen.
Bij het verzenden van gegevens geef je deze meestal door als een JSON-payload in de hoofdtekst van de aanvraag, vaak met de parameter json in de bibliotheek requests.
API-authenticatie
De meeste API's van echte netwerkapparaten vereisen authenticatie om ervoor te zorgen dat alleen bevoegde gebruikers configuraties kunnen bekijken of wijzigen. Veelgebruikte methoden zijn:
- Basisauthenticatie: Bij elke aanvraag een gebruikersnaam en wachtwoord meesturen.
- API-sleutels: Een unieke sleutel die door de service wordt verstrekt.
- Op tokens gebaseerd: Na het aanmelden een tijdelijk token verkrijgen en dit voor volgende aanvragen gebruiken (bijvoorbeeld OAuth).
Beveilig je aanmeldgegevens altijd!
Reacties en fouten verwerken
Na een API-aanroep stuurt de server een HTTP-statuscode terug die het resultaat van de aanvraag aangeeft. Deze codes begrijpen is essentieel voor het opsporen van fouten:
- 200 OK: Aanvraag geslaagd.
- 201 Created: Resource succesvol gemaakt (voor POST).
- 400 Bad Request: De client heeft ongeldige gegevens verzonden.
- 401 Unauthorized: Authenticatie mislukt.
- 404 Not Found: Resource niet gevonden.
- 500 Internal Server Error: Probleem aan de serverzijde.
De waarde response.status_code van de bibliotheek requests geeft deze statuscode.
Test je kennis
Welke van de volgende HTTP-methoden worden gewoonlijk gebruikt om resources te wijzigen of te maken via een REST API?
Samenvatting en volgende stappen
Goed gedaan! Je hebt de basis geleerd van het werken met REST API's voor netwerkautomatisering. We hebben besproken wat REST is, wat de belangrijkste HTTP-methoden zijn, welke gegevensindelingen zoals JSON bestaan en hoe je de Python-bibliotheek requests gebruikt.
Met REST API's kun je krachtige scripts bouwen om de configuratie, bewaking en probleemoplossing van moderne netwerkinfrastructuren te automatiseren!
Leer Linux-netwerken en TCP/IP voor ontwikkelaars met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “REST API's voor netwerkapparaten” gratis?
Ja — de volledige tekst van “REST API's voor netwerkapparaten” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Linux-netwerken en TCP/IP voor ontwikkelaars wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Linux-netwerken en TCP/IP voor ontwikkelaars bevat in totaal 4 lessen.
Wat leer ik in “REST API's voor netwerkapparaten”?
Verken hoe u via RESTful API's met netwerkapparaten en -services communiceert voor programmatische besturing en monitoring. Je oefent met Linux-netwerken en TCP/IP voor ontwikkelaars door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Linux-netwerken en TCP/IP voor ontwikkelaars te beginnen?
Ervaring vooraf is niet nodig. Linux-netwerken en TCP/IP voor ontwikkelaars op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “REST API's voor netwerkapparaten”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Linux-netwerken en TCP/IP voor ontwikkelaars?
Ja. Elke les over Linux-netwerken en TCP/IP voor ontwikkelaars bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Bash-scripting voor netwerken
- Python voor netwerkautomatisering
- REST API's voor netwerkapparaten
- Netwerkconfiguratie met Ansible