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.
Header
Esta sección muestra como definir el Header cuando se configura un call o request al endpoint. Se incluyen ejemplos para python y CURL y su definición es independiente del método que se utilice.
Python Authorization Token:
Ver tokens
import requests
import json
url = 'http://e-learning.octupus.com/api/v1/{device}/interfaces'
headers = {
'Authorization': 'Token c26b519346e0755bf9b864c0db8d3d36d854ab23',
'Content-Type': 'application/json',
}
response = requests.request("GET", url, headers=headers, data=payload)
print(json.dumps(json.loads(respose.content), indent=3))
Python Authorization Basic:
Ver Usuarios
Basic Authorization usando 'Basic Auth Token' (base64 encoding de user:password)
import requests
import json
url = 'http://e-learning.octupus.com/api/v1/{device}/interfaces'
headers = {
'Authorization': 'Basic b2N0aW9uOk9jdGlvblNlcnZlcg==',
'Content-Type': 'application/json',
}
response = requests.request("GET", url, headers=headers, data=payload)
print(json.dumps(json.loads(respose.content), indent=3))
Basic Authorization usando 'user/password'
import requests
import json
url = 'http://e-learning.octupus.com/api/v1/{device}/interfaces'
user = 'oction'
password = 'OctionServer'
response = requests.get(url, auth=(user, password))
print(json.dumps(json.loads(respose.content), indent=3))
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.
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.
Método DELETE
El método DELETE solo requiere de los campos que identifican el objeto en la tabla Interfaces.
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
"slot": 0,
"port": 0,
"ip4_address": "10.0.0.1",
"status": "Down"
{
"slot": 0,
"port": 1,
"ip4_address": "10.0.0.2",
"status": "Up"
{
"slot": 1,
"port": 1,
"ip4_address": "10.0.0.3",
"status": "Down"
{
"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
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
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