Jeremy’s IT Lab lecture video:
Commands
No Commands :)
REST API Info
An API is a software interface that allows two applications to communicate with each other.
- APIs are essential not just for network automation, but for all kinds of applications.
- IN SDN architecture, APIs are used to communicate between apps and the SDN Controller (via the NBI), and between the SDN Controller and the network devices (via the SBI).
- The NBI typically uses REST APIs
- Netconf and Restconf are popular Southbound APIs.
CRUD
CRUD (Create, Read, Update, Delete) refers to the operations we perform using REST APIs.
- Create
- Create operations are used to create new variables and set their initial values.
- Example: Create variable “ip_address” and set the value to “10.1.1.1”
- Read
- Read operations are used to retrieve the value of a variable.
- Example: What is the value of variable “ip_address”?
- Update
- Update operations are used to change the value of variable.
- Example: Change the value of variable “ip_address” to “10.2.3.4”
- Delete
- Delete operations are used to delete variables.
- Example: Delete variables “ip_address”.
- HTTP uses verbs (aka. methods) to map these CRUD operations.
- REST APIs typically use HTTP.
| Purpose | CRUD Operation | HTTP Verb |
|---|---|---|
| Create new variable | Create | POST |
| Retrieve value of a value | Read | GET |
| Change the value of variable | Update | PUT, PATCH |
| Delete variable | Delete | DELETE |
HTTP Request
When an HTTP client sends a request to an HTTP server, the HTTP header includes information like this:
- An HTTP Verb (ie. GET).
- A URI (Uniform Resource Identifier), indicating the resource it is trying to access.
![]() |
|---|
| HTTP Request Example |
- A URI consists of three different parts
- Scheme
- Authority
- Paths
- Example: https://sandboxdnac.cisco.com/dna/intent/api/v1/network-device
- Scheme: https
- Authority: sandboxdnac.cisco.com
- Paths: dna/intent/api/v1/network-device
HTTP Request - Headers
- HTTP request can include additional headers which pass additional information to the server.
![]() |
|---|
| Example HTTP Request with extra headers |
- An example would an Accept header, which informs the server about the type(s) of data that can be sent back to the client.
- When a REST client makes an API call (request) to a REST server, it will send an HTTP request like the one above.
- REST APIs don’t have to use HTTP specifically for communication, although HTTP is the most common choice.
HTTP Response
- The server’s response will include a status code indicating the request succeeded or failed, as well as the other details.
- The first digit indicates the class of the response:
- 1xx Informational
- The request was received, continuing process.
- 2xx Successful
- The request was successfully received, understood, and accepted.
- 3xx Redirection
- Further action needs to be taken in order to complete the request.
- 4xx Client Error
- The request contains bad syntax or cannot be fulfilled.
- 5xx Server Error
- The server failed to fulfill an apparently valid request.
- 1xx Informational
![]() |
|---|
| HTTP Request & Response Example (1) |
HTTP Response - Example Codes
- 1xx Information
- 102 Processing:
- Indicates that the server has received the request and is processing it, but the response is not yet available.
- 102 Processing:
- 2xx Successful
- 200 OK
- Indicates that the request succeeded.
- 201 Created
- Indicates that the request succeeded and a new resource was created (ie. in response to POST)
- 200 OK
- 3xx Redirection
- 301 Moved Permanently
- Permanently indicates that the requested resource has been moved, and the server indicates its new location.
- 301 Moved Permanently
- 4xx Client Error
- 403 Unauthorized
- Means the client must authenticate to get a response.
- 404 Not Found
- Means the requested resource was not found.
- 403 Unauthorized
- 5xx Server Error
- 500 Internal Server Error
- Means the server encountered something unexpected that it doesn’t know how to handle.
- 500 Internal Server Error
REST
REST stands for Representational State Transfer.
- REST APIs are also known as REST-based APIs
ORRESTful APIs - REST isn’t a specific API. Instead, it describes a set of rules about how the API should work.
- The six constraints of RESTful architecture are:
- Uniform Interface
- Client-server
- Stateless
- Cacheable or non-cacheable
- Layered system
- Code-on-demand
REST - Client-server
REST APIs use a client-server architecture.
- The client uses API calls (HTTP Requests) to access the resources on the server.
- The separation between the client and server means they can both change and evolve independently of each other.
- Therefore, when the client application changes or the server application changes, the interface between them must NOT break.
![]() |
|---|
| HTTP Request & Response Example (2) |
REST - Stateless
REST APIs exchanges are stateless
- This means that each API exchange is a separate event, independent of all past exchanges between the client and server.
- The server does not store information about previous requests from the client to determine how it should respond to new requests.
- If authentication is required, this means that the client must authenticate with the server for each request it makes.
- TCP is an example of a stateful protocol.
- UDP is an example of a stateless protocol.
REST APIs and TCP - Stateful and Stateless
- Although REST APIs use HTTP, which uses TCP (stateful) as its Layer 4 protocol, HTTP and REST APIs themselves aren’t stateful. The functions of each layer are separate.
REST - Cacheable or Non-Cacheable
REST APIs must support caching of data.
- Caching refers to storing data for future use.
- Not all resources have to be cacheable, but cacheable resources MUST be declared as cacheable.
Jeremy IT Lab előadás videó:
61. Nap - REST API (Day 61 - REST API)
Parancsok (Commands)
Nincsenek parancsok :)
REST API ismeretek (REST API Info)
Az API (Application Programming Interface) egy olyan szoftveres felület, amely lehetővé teszi két alkalmazás számára, hogy kommunikáljanak egymással.
- Az API-k nemcsak a hálózati automatizációhoz elengedhetetlenek, hanem mindenféle más alkalmazáshoz is.
- Az SDN architektúrában API-kat használnak az alkalmazások és az SDN Controller közötti kommunikációra (az NBI-n keresztül), valamint az SDN Controller és a hálózati eszközök között (az SBI-n keresztül).
- Az NBI jellemzően REST API-kat használ.
- A Netconf és a Restconf népszerű Southbound API-k.
CRUD
A CRUD (Create, Read, Update, Delete) azokra az alapműveletekre utal, amelyeket a REST API-k használatával hajtunk végre.
- Create (Létrehozás)
- A Create műveletek új változók létrehozására és azok kezdeti értékeinek beállítására szolgálnak.
- Példa: Az „ip_address” változó létrehozása és értékének beállítása erre: „10.1.1.1”.
- Read (Olvasás / Lekérés)
- A Read műveletek egy változó értékének lekérésére szolgálnak.
- Példa: Mi az „ip_address” változó értéke?
- Update (Módosítás / Frissítés)
- Az Update műveletek egy változó értékének megváltoztatására szolgálnak.
- Példa: Az „ip_address” változó értékének módosítása erre: „10.2.3.4”.
- Delete (Törlés)
- A Delete műveletek változók törlésére szolgálnak.
- Példa: Az „ip_address” változó törlése.
- A HTTP igéket (verbs / methods) használ ezen CRUD műveletek leképezésére.
- A REST API-k jellemzően HTTP-t használnak.
| Cél (Purpose) | CRUD Művelet | HTTP Ige (Verb) |
|---|---|---|
| Új változó létrehozása | Create | POST |
| Változó értékének lekérése | Read | GET |
| Változó értékének módosítása | Update | PUT, PATCH |
| Változó törlése | Delete | DELETE |
HTTP Request (HTTP Kérés)
Amikor egy HTTP kliens kérést küld egy HTTP szervernek, a HTTP fejléc (header) ilyen információkat tartalmaz:
- Egy HTTP igét (Verb, pl. GET).
- Egy URI-t (Uniform Resource Identifier), amely meghatározza az elérni kívánt erőforrást.
![]() |
|---|
| Példa HTTP Request-re |
- Egy URI három különböző részből áll:
- Scheme (Séma / Protokoll)
- Authority (Szerver / Hoszt)
- Paths (Elérési útvonal)
- Példa: https://sandboxdnac.cisco.com/dna/intent/api/v1/network-device
- Scheme: https
- Authority: sandboxdnac.cisco.com
- Paths: dna/intent/api/v1/network-device
HTTP Request - Fejlécek (Headers)
- A HTTP request további fejléceket (headers) is tartalmazhat, amelyek extra információkat adnak át a szervernek.
![]() |
|---|
| Példa extra fejlécekkel ellátott HTTP Request-re |
- Példa erre az Accept fejléc, amely tájékoztatja a szervert arról, hogy milyen típusú adatokat képes a kliens fogadni válaszként.
- Amikor egy REST kliens API hívást (kérést) intéz egy REST szerverhez, a fentihez hasonló HTTP requestet küld.
- A REST API-knak nem feltétlenül kell kifejezetten HTTP-t használniuk a kommunikációhoz, habár a HTTP a legelterjedtebb választás.
HTTP Response (HTTP Válasz)
- A szerver válasza tartalmaz egy állapotkódot (status code), amely jelzi a kérés sikerességét vagy sikertelenségét, valamint egyéb részleteket.
- Az első számjegy a válasz kategóriáját (osztályát) jelöli:
- 1xx Informational (Információs)
- A kérés beérkezett, a folyamat folytatódik.
- 2xx Successful (Sikeres)
- A kérést a szerver sikeresen fogadta, megértette és elfogadta.
- 3xx Redirection (Átirányítás)
- További műveletre van szükség a kérés teljesítéséhez.
- 4xx Client Error (Klienshiba)
- A kérés hibás szintaxist tartalmaz, vagy nem teljesíthető.
- 5xx Server Error (Szerverhiba)
- A szerver nem tudott teljesíteni egy látszólag érvényes kérést.
- 1xx Informational (Információs)
![]() |
|---|
| Példa HTTP Requestre és Response-ra (1) |
HTTP Response - Példakódok (HTTP Response - Example Codes)
- 1xx Information
- 102 Processing:
- Azt jelzi, hogy a szerver megkapta a kérést és dolgozik rajta, de a válasz még nem áll rendelkezésre.
- 102 Processing:
- 2xx Successful
- 200 OK
- Azt jelzi, hogy a kérés sikeres volt.
- 201 Created
- Azt jelzi, hogy a kérés sikeres volt, és új erőforrás jött létre (pl. egy POST kérésre adott válaszként).
- 200 OK
- 3xx Redirection
- 301 Moved Permanently
- Azt jelzi, hogy a kért erőforrás véglegesen elköltözött, és a szerver megadja annak új helyét.
- 301 Moved Permanently
- 4xx Client Error
- 403 Unauthorized (vagy Forbidden)
- Azt jelenti, hogy a kliensnek hitelesítenie kell magát a válasz megszerzéséhez.
- 404 Not Found
- Azt jelenti, hogy a kért erőforrás nem található.
- 403 Unauthorized (vagy Forbidden)
- 5xx Server Error
- 500 Internal Server Error
- Azt jelenti, hogy a szerver váratlan hibába ütközött, amelyet nem tud kezelni.
- 500 Internal Server Error
REST
A REST a Representational State Transfer rövidítése.
- A REST API-kat REST-based API-kként
VAGYRESTful API-kként is ismerik. - A REST nem egy konkrét API, hanem olyan szabályok összessége, amelyek meghatározzák, hogyan kell az API-nak működnie.
- A RESTful architektúra hat alapvető megkötése (constraints):
- Uniform Interface (Egységes felület)
- Client-server (Kliens-szerver modell)
- Stateless (Állapotmentesség)
- Cacheable or non-cacheable (Gyorsítótárazható vagy nem gyorsítótárazható)
- Layered system (Rétegzett rendszer)
- Code-on-demand (Igény szerinti kód - opcionális)
REST - Kliens-szerver (Client-server)
A REST API-k client-server architektúrát használnak.
- A kliens API hívásokat (HTTP Request-eket) használ a szerveren lévő erőforrások eléréséhez.
- A kliens és szerver szétválasztása biztosítja, hogy mindkettő egymástól függetlenül módosulhasson és fejlődhessen.
- Ezért a kliensalkalmazás vagy a szerveralkalmazás módosulásakor a köztük lévő interfész NEM törhet el.
![]() |
|---|
| Példa HTTP Requestre és Response-ra (2) |
REST - Állapotmentesség (Stateless)
A REST API adatcserék állapotmentesek (stateless).
- Ez azt jelenti, hogy minden API tranzakció egy különálló esemény, amely független a kliens és a szerver közötti korábbi adatcseréktől.
- A szerver nem tárol információkat a kliens korábbi kéréseiről annak eldöntésére, hogyan válaszoljon az új kérésekre.
- Ha hitelesítés (authentication) szükséges, a kliensnek minden egyes elküldött kérésével hitelesítenie kell magát a szervernél.
- A TCP egy állapotmegőrző (stateful) protokoll.
- Az UDP egy állapotmentes (stateless) protokoll.
REST API-k és a TCP - Stateful és Stateless
- Habár a REST API-k a HTTP-t használják, amely a TCP-t (stateful) alkalmazza Layer 4 protokollként, maga a HTTP és a REST API-k nem állapotmegőrzők (nem stateful-ok). Az egyes rétegek funkciói elkülönülnek egymástól.
REST - Gyorsítótárazható vagy Nem gyorsítótárazható (Cacheable or Non-Cacheable)
A REST API-knak támogatniuk kell az adatok gyorsítótárazását (caching).
- A caching az adatok későbbi felhasználás céljából történő tárolására utal.
- Nem kell minden erőforrásnak gyorsítótárazhatónak lennie, de a gyorsítótárazható (cacheable) erőforrásokat KÖTELEZŐ akként deklarálni.



