Descripción general de la API RESTful
La arquitectura 100 % API de Juniper Mist respalda todas las características visibles del portal de Juniper Mist. Cualquier cosa que pueda hacer en el portal, la puede automatizar a escala mediante la API. La transferencia de estado representacional (REST) es una arquitectura cliente/servidor sin estado con una interfaz uniforme. Dado que las máquinas no tienen uso para una interfaz de usuario, las API permiten una forma definida y más rápida para que las máquinas se comuniquen entre sí. Las API también le permiten a usted y a otros usuarios crear su propia forma de interactuar con sistemas y aplicaciones. Incluso puede crear características personalizadas.
La API de Juniper Mist está disponible para cualquier cliente que tenga una cuenta de Juniper Mist.
Consulte también la Referencia de la API de Mist. Esto contiene documentación adicional para desarrolladores, así como la capacidad de probar las llamadas a la API.
Arquitectura de la API de Juniper Mist
Juniper Mist usa API de REST, que utilizan métodos HTTP (GET, POST, PUT y DELETE) para transferir datos en formato de notación de objetos JavaScript (JSON).
Solicitudes de API RESTful
El uso de API RESTful sigue una práctica similar a la metodología CRUD (CREATE, READ, UPDATE, DELETE) utilizada en el desarrollo. Estas son las cuatro acciones o funciones básicas utilizadas cuando se trabaja con datos.
CRUD | HTTP/REST |
---|---|
Crear | EXPONER |
Leer | OBTENER |
Actualizar | PONER |
Borrar | BORRAR |
Formato de URL de punto de conexión de API
La URL del punto de enlace de la API tiene dos partes:
-
Host de API ( o punto de conexión): el punto de conexión para la región global a la que está asociada su organización de Juniper Mist. Estos puntos de enlace se enumeran en Puntos de conexión de API y Regiones globales.
-
Función: todo lo que esté después del punto de conexión de la API representa la función a la que llamará la API.
Ejemplo
https://{api-host}/api/v1/sites/{site_id}/stats/devices/{device_id}
.
https://api.mist.com/api/v1/sites/13b0ee00-121a-456e-84e0-ead3008bc2f2/stats/devices/00000000-0000-0000-1000-d420b08532eb
Cuando reutilice bloques de código, reemplace los valores de marcador de posición por valores reales, como el token de API, el ID de organización, el ID de sitio, el nombre de AP, etc.
Todo después de {api-host} es la función. La llamada va a la nube global y solicita las estadísticas para el dispositivo especificado en el sitio especificado.
En la siguiente sección se analiza en profundidad la estructura que constituye una llamada a la API.
Estructura de llamadas a la API
La siguiente imagen es un ejemplo de una llamada a la API y los diferentes componentes que la componen.
Componente de llamada a la API |
Descripción |
---|---|
HTTP (método) |
|
Host (o punto de conexión de API) |
Determina la nube de Mist que se va a utilizar (Global 01, EMEA 01, etc.). El punto de conexión para la región global a la que está asociada su organización de Juniper Mist. Consulte Puntos de conexión de API y regiones globales. |
Versión |
La versión de la API que se va a usar (actualmente, todas las API usan v1). |
Alcance |
Indica el nivel en el que se realiza la solicitud. Algunos ejemplos son msp, org, site, self, register, installer, const, etc. |
ID de alcance |
Identifica el ámbito que se va a utilizar. |
Objeto |
Tipo de objeto que se va a utilizar (dispositivo, WLAN, etc.). |
ID de objeto |
Identifica el objeto que se va a solicitar. |
Para ejecutar cualquiera de los comandos REST anteriores (POST, GET, PUT, DELETE) en la API REST, debe cumplir algunos requisitos en cada solicitud, como:
-
Autenticación:
-
-
Puede usar un token de API, credenciales de inicio de sesión de Juniper Mist o un proveedor OAuth2 externo para indicar quién es usted y a qué tiene acceso durante el proceso de autenticación.
-
Para obtener más información sobre los distintos métodos de autenticación, consulte Autenticación.
Nota:Si ya ha iniciado sesión en manage.mist.com, simplemente puede abrir una nueva pestaña del navegador e ir a https://api.mist.com/api/v1/self/apitokens y hacer clic en el botón PUBLICAR . Esto creará automáticamente un nuevo token de usuario de API.
Consulte Crear tokens de API para obtener más información acerca de los tokens.
-
-
Encabezado HTTP: este encabezado especifica el contenido y el tipo de autorización, de la siguiente manera:
-
Para Juniper Mist, el tipo de contenido siempre es application/json.
-
La autorización puede ser un token o una cookie (incluido el token CSRF y el ID de sesión).
-
-
El punto de conexión para la región global a la que está asociada su organización de Juniper Mist. Consulte Puntos de conexión de API y regiones globales.
En la tabla siguiente se proporcionan ejemplos de las distintas partes que componen una solicitud de API RESTful.
Operación CRUD |
Autenticación de encabezado HTTP |
URL del punto de conexión |
Carga útil (JSON) |
---|---|---|---|
OBTENER |
API Token |
https://api.mist.com/api/v1/sites/:site_id/wlans |
|
BORRAR |
Token CSRF, ID de sesión |
https://api.mist.com/api/v1/sites/:site_id/wlans/:wlan_id |
|
EXPONER |
Token CSRF, ID de sesión |
https://api.mist.com/api/v1/orgs/:org_id/inventory |
{["<claim_code>"]} |
PONER |
API Token |
https://api.mist.com/api/v1/sites/:site_id/wlans/:wlan_id |
{"ssid" : "nuevo nombre"} |
Carga JSON
Diferentes funciones requieren diferentes elementos en la carga JSON. Puede ver los detalles necesarios en la documentación de la API.
A continuación se muestra un ejemplo de llamada a la API y la respuesta (carga JSON).
Llamada a la API:
POST /api/v1/orgs/{org_id}/rftemplates
Respuesta (carga JSON):
{ "name": "new-rf-template", "org_id": "a97c1b22-a4e9-411e-9bfd-d8695a0f9e61", "band_5": { "allow_rrm_disable": false, "ant_gain": 0, "channels": [], "disabled": false, "power_max": 17, "power_min": 8 }, "band_24": { "allow_rrm_disable": false, "ant_gain": 0, "channels": [], "disabled": false, "power_max": 17, "power_min": 8 }, "country_code": "CA" }
Limitación de la velocidad de API
Juniper Mist limita las llamadas a la API a 5.000 por hora. Si necesita hacer más de 5,000 llamadas por hora, cree un ticket de soporte.
Para evitar ataques de fuerza bruta, la API de inicio de sesión (/api/v1/login) tiene una velocidad limitada después de tres errores de inicio de sesión.
Opciones de autenticación de API
La API de Juniper Mist permite tres opciones para solicitar autenticación:
-
Autenticación básica: token
-
Asegúrelo como una contraseña.
-
Para obtener instrucciones sobre cómo crear un token de API, consulte Crear tokens de API.
-
-
Inicio de sesión HTTP: nombre de usuario y contraseña
-
Es como un inicio de sesión en el tablero.
-
Puede ser autenticación de dos factores.
-
-
OAuth2
-
La cuenta debe estar vinculada a un proveedor de OAuth.
-
Requiere acceso al navegador.
-
Para obtener más información acerca de la autenticación, consulte la Referencia de la API de Mist.
Un ejemplo de API simple
La interfaz de la API de Django es una interfaz basada en web donde puede realizar operaciones CRUD dentro de la API. Consulte Usar la interfaz web de Django para realizar cambios en la API.
Con la interfaz de la API de Django, puede realizar su primera llamada a la API. Después de iniciar sesión en Mist, abra una nueva ventana con el mismo navegador e introduzca la URL https://api.mist.com/api/v1/self
. Esta es la URL de la nube Global 01. Si está utilizando otra nube, esta URL será diferente.
Esto equivale a realizar esta llamada GET /api/v1/self
a la API.
El resultado, que se muestra arriba, muestra los privilegios que se le han asignado para las organizaciones y los sitios con los que está asociado.