API endpoit /api/v1/{device}/interfaces


El endpoint interfaces contiene todas las especificaciones que se deben considerar al momento de configurar un call o request para operar con el objeto interfaces. Tanto el detalle acerca de los Métodos, Header, URL y Body, asi como el correcto uso y resultados esperados, son parte de la definición de las especificaciones.


Modelo de Datos

La tabla asociada o Modelo de Datos del endpoint /api/v1/{device}/interfaces se llama Interfaces, y está compuesta por los siguientes campos:

device: instancia de la tabla Devices (*)(#)
type (*)
slot (*)
port (*)
ip4_address (+)
status (+)

(*) Campos que conforman la Key primaria y única de la tabla. Campos mandatorios en los métodos POST, PATCH, y DELETE.
(#) El campo device, se obtiene de la URL del endpoint. No es necesario incluirlo en el Body.
(+) Campos que se pueden modificar.



URL

La URL esta formada por el pattern /api/v1/, el dispositivo {device} (instancia de la Tabla Devices, campo name) y el pattern /interfaces.

/api/v1/{device}/interfaces


Métodos

Métodos implementados en el endpoint.

GET


El método GET se utiliza para hacer consultas a las tablas asociadas al endpoint, en este caso, la tabla Interfaces. GET solo requiere la definición del Header de acuerdo a las exigencias de la especificación del endpoint en el API Server.

POST


El método POST crea nuevos objetos interfaces asociados al endpoint, y los almecena en la tabla Interfaces. El método requiere la correcta definición del Header, donde se especifican los parámetros de autenticación, y del Body, quien contiene los datos o contenido del objeto a crear. En la definición del Body, se especifican para este método, que campos son mandatorios y cuales opcionales.

PATCH


El método PATCH modifica objetos interfaces existentes, y los almecena en la tabla asociada al endpoint. El método requiere la correcta definición del Header, donde se especifican los parámetros de autenticación, y del Body, quien contiene los datos o contenido del objeto a modificar. En la definición del Body, se especifican que campos son mandatorios y cuales opcionales para modificar un objeto interfaces.

DELETE


El método DELETE elimina objetos interfaces existentes en la tabla asociada al endpoint. El método requiere la correcta definición del Header, donde se especifican los parámetros de autenticación, y del Body, quien contiene los datos o contenido del objeto a eliminar. En la definición del Body, se especifican que campos son mandatorios.



Curl Authorization Token:


Ver Tokens

curl --location --request GET 'http://e-learning.octupus.com/api/v1/{device}/interfaces' \
--header 'Authorization: Token c26b519346e0755bf9b864c0db8d3d36d854ab23' \
--header 'Content-Type: application/json'


Curl Authorization Basic:


Ver Usuarios

Basic Authorization usando 'Basic Auth Token' (base64 encoding de user:password)

curl --location --request GET 'http://e-learning.octupus.com/api/v1/{device}/interfaces' \
--header 'Authorization: Basic b2N0aW9uOk9jdGlvblNlcnZlcg==' \
--header 'Content-Type: application/json'




Body

Esta sección muestra como definir el Body cuando se configura un call o request al endpoint. Cada método requiere un Body diferente y es independiente del Header que se defina.

Método GET

El método GET no requiere Body

Método POST


En el método POST, todos los campos del modelo de datos del objeto interfaces son requeridos.

body = {




}

Método PATCH


El endpoint define que el método PATCH requiere de los campos mandatorios (ver Modelo de Datos) y de los campos que se desean modificar.

body = {




}

Método DELETE


El método DELETE solo requiere de los campos que identifican el objeto en la tabla Interfaces.

body = {



}



Try it

Ejemplos de código para cada método. Como definir el Body y el Header cuando se configura un call o request al endpoint, y cual es la salida esperada.

Try a GET


Código Python Authorization Tokens

import requests
import json
url = 'http://e-learning.octupus.com/api/v1/Catalyst 3700/interfaces'

headers = {

}

response = requests.request("GET", url, headers=headers)
print(json.dumps(json.loads(respose.content), indent=3))



Output

[
{
"type": "GigabitEhernet",
"slot": 0,
"port": 0,
"ip4_address": "10.0.0.1",
"status": "Down"
},
{
"type": "GigabitEhernet",
"slot": 0,
"port": 1,
"ip4_address": "10.0.0.2",
"status": "Up"
},
{
"type": "GigabitEhernet",
"slot": 1,
"port": 1,
"ip4_address": "10.0.0.3",
"status": "Down"
},
{
"type": "GigabitEhernet",
"slot": 7,
"port": 0,
"ip4_address": "10.1.1.5",
"status": "Up"
}
]

Try a POST


Código Python Authorization Tokens

import requests
import json
url = 'http://e-learning.octupus.com/api/v1/Catalyst 3700/interfaces'

headers = {

}

body = json.dumps({

})

response = requests.request("POST", url, headers=headers, data=body)
print(json.dumps(json.loads(respose.content), indent=3))



Output

{
"result": "Interfaz tipo: Giga, slot: 7, port: 1, en device Catalyst 3700, created"
}

Try a PATCH


Código Python Authorization Tokens

import requests
import json
url = 'http://e-learning.octupus.com/api/v1/Catalyst 3700/interfaces'

headers = {

}

body = json.dumps({

})

response = requests.request("PATCH", url, headers=headers, data=body)
print(json.dumps(json.loads(respose.content), indent=3))



Output

{
"result": "Interfaz tipo: Giga, slot: 7, port: 1, en device Catalyst 3700, modified"
}

Try a DELETE


Código Python Authorization Tokens

import requests
import json
url = 'http://e-learning.octupus.com/api/v1/Catalyst 3700/interfaces'

headers = {

}

body = json.dumps({

})

response = requests.request("DELETE", url, headers=headers, data=body)
print(json.dumps(json.loads(respose.content), indent=3))



Output

{
"result": "Interfaz tipo: Giga, slot: 7, port: 1, en device Catalyst 3700, deleted"
}