0% encontró este documento útil (0 votos)
8 vistas80 páginas

Guía de Módulo sobre APIs en DevNet

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas80 páginas

Guía de Módulo sobre APIs en DevNet

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Módulo 4: Comprensión y uso

de las APIs
Materiales del Instructor

DevNet Associate v1.0


Materiales del instructor – Módulo 4: Guía de planificación.
Esta presentación en PowerPoint se divide en dos partes:
• Guía de planificación para el instructor
• Información para ayudarlo a familiarizarse con el módulo.
• Ayuda didáctica
• Presentación de la clase del instructor
• Diapositivas opcionales que puede utilizar en el aula
• Comienza en la diapositiva n.# 11
Nota: Elimine la Guía de Planificación de esta presentación antes de compartirla con otras
personas.
Para obtener ayuda y recursos adicionales, diríjase a la Página Principal del instructor y
a los recursos del curso para este curso. También puede visitar el sitio de desarrollo
profesional en [Link], la página oficial de Facebook de Cisco Networking
Academy, o el grupo de FaceBook Exclusivo para Instructores.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 2
Qué esperar en este módulo
Para facilitar el aprendizaje, se pueden incluir en este módulo las siguientes características:

Característica Descripción
Laboratorios prácticos Laboratorios diseñados para trabajar con equipos físicos.
Auto-evaluaciones que integran conceptos y habilidades aprendidas a lo largo
Cuestionarios de módulo de los temas presentados en el módulo.
Resumen del módulo Resumiendo brevemente el contenido del módulo.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 3
Verifique su conocimiento

• Las actividades de " Verifique su Conocimiento " están diseñadas para permitir que los
estudiantes determinen si están entendiendo el contenido y puedan continuar, o si es
necesario un repaso personal.
• Las actividades de "Verifique su Conocimiento" no afectan las calificaciones de los alumnos.

• No hay diapositivas separadas para estas actividades en el PPT. Se enumeran en el área de


notas de la diapositiva que aparece antes de estas actividades.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 4
Módulo 4: Actividades
¿Que actividades están asociadas con este módulo?

N.° de página Tipo de actividad Nombre de la actividad ¿Opcional?


4.5.5 Laboratorio Explore las API REST con el simulador de API y el Postman Recomendado
4.9.2 creación de prototipos Integración de una API REST con Python Recomendado

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 5
Módulo 4: Mejores prácticas
Antes de enseñar el Módulo #4, el instructor debería:
• Revisar las actividades y evaluaciones de este módulo.
• Tratar de incluir la mayor cantidad de preguntas que sean posibles, con el fin de mantener a
los estudiantes comprometidos con la presentación.

Tema 4.1
• Defina la Interfaz de Programación de Aplicaciones (API)
• Pregunte a la clase cuál es el propósito de usar una API?

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 6
Módulo 4: Mejores prácticas (Cont.)
Tema 4.2
• Analice la diferencia entre las API asíncrónicas y sincrónicas. Pida a los estudiantes que
proporcionen ejemplos de API asíncrónicas y sincrónicas y tengan una discusión sobre el
mismo.
• Analice los beneficios de las API asíncrónicas y sincrónicas.

Tema 4.3
• Discuta los estilos arquitectónicos de API: RPC, SOAP y REST.
• Proporcione ejemplos de RPC, SOAP y REST a la clase. Pídales que hagan una lluvia
de ideas sobre los ejemplos e identifiquen el estilo arquitectónico apropiado.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 7
Módulo 4: Mejores prácticas (Contd.)
Tema 4.4
• Explique los seis principios del estilo arquitectónico REST: cliente-servidor, sin estado,
caché, interfaz uniforme, sistema en capas, código bajo demanda.
• Discuta los cuatro componentes principales de las solicitudes de API REST: Identificador
uniforme de recursos, Método HTTP, Encabezado, cuerpo.
• Proporcione una URL y pida a los alumnos que categoricen el esquema, la autoridad, la
ruta y la consulta.
• Pregunte a la clase si son conscientes de los comunes errores de HTTP. Discuta los
códigos de estado HTTP comunes.
• Pida a los estudiantes que investigue los diferentes ejemplos de los códigos de estado y
comparta con la clase realizando los errores en el ordenador.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 8
Módulo 4: Mejores prácticas (Cont.)
Tema 4.5
• Introduce la Autenticación y Autorización con diferentes escenarios.
• Discute los mecanismos de autenticación
• Explique el término 'flujo' a través de las versiones de autorización.

Tema 4.6
• Proporcione una visión general del 'Límite de Velocidad'
• Explique los modelos del algoritmo de límite de velocidad con ejemplos.
• Discuta las causas de exceder el límite de Velocidad.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 9
Módulo 4: Mejores prácticas (Cont.)
Tema 4.7
• Familiarizar a los alumnos con Webhook.
• Explica cómo Webhook ayuda a recibir notificaciones.

Tema 4.8
• Diferenciar entre el error del lado del cliente y el error del lado del servidor junto con sus
causas y resoluciones del Root.
• Lista los códigos de estado 2xx,4xx y 5xx junto con sus categorías.
• Proporcione códigos de estado de muestra a los estudiantes y pídales que identifiquen los
errores y proporcionen soluciones.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 10
Módulo 4: Comprensión y uso
de las APIs

DevNet Associate v1.0


Objetivos del módulo
Título de Módulo: Comprender y uso las APIs

Objetivo del Módulo: Crear solicitudes de API REST a través de HTTPS para integrar servicios de forma
segura
Título del tema Objetivo del tema
Introducir las APIs Explique el uso de API.
Estilos de Diseño de la API Compare los estilos de diseño síncronos y asíncronos de las API.
Estilo de Arquitectura de la API Describa los estilos de arquitectura de API comunes.
Introducción a la API REST Explique las funciones de las API de REST.
Cree solicitudes de API de REST sobre HTTPS para integrar servicios de
Autenticando una API REST
manera segura.
Límites de Velocidad de API Explicar el propósito de los límites de Velocidad de API
Trabajando con Webhooks Explique el uso de Webhooks.
Solución de problemas de llamadas
Explicar como solucionar problemas de las APIs REST
de la API

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 12
4.1 Introducción a las API

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 13
Comprensión y uso de las APIs
¿Qué es una API?
• Una interfaz de programación de
aplicaciones (API)permite una
conversación de software con otra.
Ejemplo de diferentes tipos de integraciones de API
• Utiliza interacciones basadas en
la web o protocolos de
comunicación comunes y sus
propios estándares patentados.
• Una API determina qué tipo de
datos, servicios y funcionalidad
expone la aplicación a terceros.
• Al proporcionar API, las
aplicaciones pueden controlar lo
que exponen de forma segura.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 14
Comprensión y uso de las APIs
¿Por qué se usan las APIs?
• Las API están diseñadas para ser consumidas mediante programación por otras
aplicaciones y también pueden ser usadas por humanos que desean interactuar con la
aplicación manualmente.
Los casos de uso de las API son los siguientes:
• Tareas de automatización : cree un script que realice tareas manuales de forma
automática y programática.
• Integración de datos : una aplicación puede consumir o reaccionar a los datos
proporcionados por otra aplicación.
• Funcionalidad : una aplicación puede integrar la funcionalidad de otra aplicación en su
producto.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 15
Comprensión y uso de las APIs
¿Por qué las API son tan populares?
• Las API han existido durante décadas, pero la exposición y consumo de las API han
crecido exponencialmente en los últimos 10 años más o menos.
• La mayoría de las API modernas están diseñadas en el producto y se prueban a fondo.

• Los lenguajes de codificación simplificados, como Python, han hecho posible que los
ingenieros que no son de software creen aplicaciones y consuman API.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 16
4.2 Estilos de diseño de API

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 17
Estilos de diseño API
Tipos de estilos de diseño
• El conjunto de API de un producto puede consistir en diseños sincrónicos y asincrónicos,
donde el diseño de cada API es independiente de los demás.
• La aplicación que consume la API administra la respuesta de manera diferente
dependiendo del diseño de la API.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 18
Estilos de diseño API
APIs sincrónicas
• Las API sincrónicas responden directamente a una
APIs Sincrónicas
solicitud proporcionando datos inmediatamente.
¿Cuándo las API son sincrónicas?
• Las API son sincrónicas cuando los datos de la
solicitud están disponibles fácilmente.
Ventajas de un diseño de API sincrónico
• Las API sincrónicas permiten que la aplicación
reciba datos inmediatamente. Si la API está
diseñada correctamente, el rendimiento de la
aplicación será mejor.
Procesamiento del lado del cliente
• La aplicación que realiza la solicitud de API debe Las entradas se venden en orden por
esperar la respuesta antes de realizar tareas orden de llegada. Este es un proceso
adicionales de ejecución de código. sincrónico.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 19
Estilos de diseño API
APIs asincrónicas
• Las API asincrónicas proporcionan una respuesta (sin
datos) para indicar que se ha recibido la solicitud.
¿Cuándo son asincrónicas las API?
• Las API son asincrónicas cuando la solicitud tarda algún
APIs Asincrónicas
tiempo en procesarse el servidor o si los datos no están
disponibles fácilmente.
Beneficio del diseño de API asincrónico
• Las API asincrónicas permiten que la aplicación
continúe su ejecución sin ser bloqueada hasta que el
servidor procese la solicitud, lo que resulta en un mejor
rendimiento.
Procesamiento del lado del cliente
• Con el procesamiento asincrónico, el diseño de la API
en el lado del servidor define el requisito en el lado del
cliente. © 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 20
4.3 Estilos de Arquitectura
de la API

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 21
Estilos de Arquitectura de la API
Estilos arquitectónicos
• Existen ciertos estándares, protocolos y estilos arquitectónicos específicos que facilitan a
los consumidores de la API el aprendizaje y la comprensión de la API.
• Los tres tipos más populares de estilos arquitectónicos API son:

• RPC

• SOAP

• REST

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 22
Estilos de Arquitectura de la API
Llamada procedimiento remoto de estilos arquitectónicos API (RPC)
• Llamada a procedimiento remoto (RPC) es un
modelo de petición-respuesta que permite a Modelo de solicitud/respuesta cliente-servidor
una aplicación realizar una llamada a de llamada a procedimiento remoto
procedimiento a otra aplicación.
• Cuando se llama a RPC a un cliente, el método
se ejecuta y los resultados se devuelven.
• RPC es un estilo API que se puede aplicar a
diferentes protocolos de transporte como:
• XML-RPC
• JSON-RPC
• NFS (Sistema de archivos de red)
• Protocolo Simple de Acceso a Objetos
(SOAP)

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 23
Estilos de Arquitectura de la API
Protocolo simple de acceso a objetos (SOAP)
• Protocolo simple de acceso a objetos (SOAP) es un protocolo de mensajería basado en XML.
Se utiliza para la comunicación entre aplicaciones en diferentes plataformas o construido con
diferentes lenguajes de programación.
SOAP es:
• Independiente: Todas las aplicaciones pueden comunicarse entre sí y ejecutarse en
diferentes sistemas operativos
• Extensible: añada funciones como fiabilidad y seguridad
• Neutral: puede ser utilizado sobre cualquier protocolo, incluyendo HTTP, SMTP, TCP, UDP o
JMS
Un mensaje SOAP es un documento XML que puede contener los cuatro elementos siguientes:
• Sobre — el elemento raíz del documento XML.
• Encabezado : contiene información específica de la aplicación, como autorización, atributos
específicos de SOAP, etc.
• Cuerpo - contiene los datos a ser transportados al destinatario
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
• Falla : proporciona información de error y/o estado. confidencial de Cisco. 24
Estilos de Arquitectura de la API
Protocolo simple de acceso a objetos (SOAP) (Cont.)
• La siguiente captura de pantalla es un ejemplo de un mensaje SOAP:

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 25
Estilos de Arquitectura de la API
Transferencia de Estado Representacinal (REST)
• Transferencia de Estado Representacional (REST) es un estilo arquitectónico
escrito por Roy Thomas Fielding.
• Roy ha establecido seis restricciones que se pueden aplicar a cualquier protocolo
en REST.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 26
API Estilos arquitectónicos
Transferencia de estado representacional (REST) (Cont.)
Cliente-Servidor
Modelo de Cliente-Servidor
• El cliente y el servidor deben ser REST
independientes entre sí.
• Esto permitirá que el cliente se construya para
múltiples plataformas, lo que simplificará los
componentes del lado del servidor.

Sin estado
Modelo sin estado REST
• Las solicitudes del cliente al servidor deben
contener el modelo cliente-servidor REST y
toda la información que el servidor necesita
para realizar la solicitud.
• El servidor no puede contener estados de
sesión. © 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 27
API Estilos arquitectónicos
Transferencia de estadorepresentacional (REST) (Cont.)
Modelo de caché:
Modelo de caché REST
• Las respuestas del servidor deben indicar si la respuesta
se puede almacenar en caché o no en caché.
• Si se puede almacenar en caché, el cliente puede utilizar
los datos de la respuesta para solicitudes posteriores.

Interfaz uniforme:

La interfaz entre el cliente y el servidor se adhiere a los


cuatro principios:
• Identificación de recursos
• Manipulación de recursos a través de representaciones
• Mensajes autodescriptivos
• Hypermedia como motor del estado de la aplicación.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 28
API Estilos arquitectónicos
Transferencia de estadorepresentacional (REST) (Cont.)
Sistema de capas:
Modelo de sistema en capas REST
• El sistema en capas consta de
diferentes capas jerárquicas en las que
cada capa proporciona servicios sólo a
la capa que está encima.
• Como resultado, consume servicios de
la capa siguiente.

Código bajo demanda:


• La información devuelta por un servicio REST puede incluir código ejecutable (por
ejemplo, javascript) o enlaces destinados a extender de manera útil la funcionalidad del
cliente.
• La restricción es opcional porque la ejecución de códigos de terceros introduce posibles
riesgos de seguridad. © 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 29
4.4 Introducción a las API de
REST

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 30
Introducción a las API de REST
REST Web Service API REST
• Una API de servicio web REST
(API REST) es una interfaz de
programación que se comunica a
Modelo de solicitud/respuesta de API REST
través de HTTP.
• Las API REST utilizan los mismos
conceptos que el protocolo HTTP
que son los siguientes:
• Solicitudes/respuestas HTTP

• Verbos HTTP

• Código de estado HTTP

• Encabezados/cuerpo HTTP

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 31
Introducción a las API de REST
Solicitudes de API REST
• Las solicitudes de API REST son solicitudes HTTP que son una forma de que una aplicación
(cliente) pida al servidor que realice una función.
• Las solicitudes de API REST se componen de cuatro componentes principales:

• Identificador uniforme de recursos (URI)

• Método HTTP:

• Encabezado

• Cuerpo

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 32
Introducción a las API de REST
Solicitudes de API REST (Cont.)
El identificador uniforme de recursos (URI), también conocido como localizador uniforme de
recursos (URL), identifica qué recurso desea manipular el cliente. Los componentes de un URI
son:
• Esquema: especifica qué protocolo HTTP se debe usar, http o https.

• Autoridad: consta de dos partes, a saber, host y puerto.

• Ruta de acceso: representa la ubicación del recurso, los datos u objeto, que se va a
manipular en el servidor.
• Consulta: proporciona detalles adicionales sobre el ámbito, el filtrado o para aclarar una
solicitud.

Diferentes componentes de un URI


© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 33
Introducción a las API de REST
Solicitudes de API REST (Cont.)
Método HTTP:
• Las API REST utilizan los métodos HTTP estándar para comunicarse con los servicios web
para los que se solicita la acción para el recurso dado.
• La asignación sugerida del método HTTP a la acción es la siguiente:

Método HTTP: Acción Descripción


POST Crear (Create) Crear un nuevo objeto o recurso.
GET lectura (Read) Recuperar detalles de recursos del sistema.
PUT Actualizar Reemplace o actualice un recurso existente.
PARCHE Actualización parcial Actualice algunos detalles de un recurso existente.
DELETE Eliminar (Delete) Remover un recurso del sistema.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 34
Introducción a las API de REST
Solicitudes de API REST (Cont.)
Encabezado:
• Los encabezados HTTP tienen el formato de pares nombre-valor separados por dos puntos
(:), [nombre]: [valor].

Dos tipos de encabezados:


• Encabezados de solicitud : incluye información adicional que no esté relacionada con el
contenido del mensaje.
Clave Valor de ejemplo Descripción
Autorización DMFNCMFUDDP2YWDYYW Proporciona credenciales para autorizar la
básico solicitud
• Encabezados de entidad : información adicional que describe el contenido del cuerpo del
mensaje.
Clave Valor de ejemplo Descripción
Tipo de
aplicación/ JSON Especificar el formato de los datos en el cuerpo
contenido
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 35
Introducción a las API de REST
Solicitudes de API REST (Cont.)
Cuerpo:

• El cuerpo de la solicitud de API REST contiene los datos correspondientes al recurso que el
cliente desee manipular.

• Las solicitudes de API REST que utilizan el método HTTP POST, PUT y PATCH suelen
incluir un cuerpo.

• El cuerpo es opcional dependiendo del método HTTP.

• Si los datos se proporcionan en el cuerpo, entonces el tipo de datos debe especificarse en el


encabezado mediante la clave de Content-Type.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 36
Introducción a las API de REST
Respuestas API REST
• Las respuestas de la API REST son respuestas HTTP que comunica los resultados de la
solicitud HTTP de un cliente.
• Respuesta REST API se componen de tres componentes principales:

• Estado HTTP

• Encabezado

• Cuerpo

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 37
Introducción a las API de REST
Respuestas API REST (Cont.)
Estado HTTP
• El código de estado HTTP ayuda al cliente a determinar el motivo del error y a veces puede
proporcionar sugerencias para solucionar el problema.
• Los códigos de estado HTTP constan de tres dígitos, donde el primer dígito es la categoría
de respuesta y los otros dos dígitos son asignados en orden numérico.
• Hay cinco categorías diferentes de códigos de estado HTTP:

• 1xx — Informativo — con fines informativos, las respuestas no contienen un cuerpo


• 2xx — Éxito: el servidor recibió y ha aceptado la solicitud
• 3xx — Redirección : el cliente tiene que tomar una acción adicional para completar la
solicitud
• 4xx — Error de cliente — la solicitud contiene un error como sintáxis incorrecta o entrada
no válida
• 5xx — Error del servidor — no se pueden cumplir las solicitudes válidas.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 38
Introducción a las API de REST
Respuestas API REST (Cont.)
Los códigos de estado HTTP comunes son los siguientes:

Código de Estado Mensaje de estado Descripción


HTTP
La solicitud se realizó correctamente y normalmente contiene una carga útil
200 Aceptar
(cuerpo)
201 Creada Se cumplió la solicitud y se creó el recurso que fue solicitado

202 Aceptada La solicitud ha sido aceptada para su procesamiento y está en proceso


400 Solicitud no válida La solicitud no se procesará debido a un error con la solicitud

401 No autorizado La solicitud no tiene credenciales de autenticación válidas para realizar la solicitud

403 Prohibida La solicitud ha sido entendida pero ha sido rechazada por el servidor

No se puede cumplir la solicitud porque la ruta de acceso del recurso de la solicitud


404 No se encontró
no se encontró en el servidor

500 Error del servidor interno No se puede cumplir la solicitud debido a un error del servidor
El servicio no está No se puede cumplir la solicitud porque actualmente el servidor no puede manejar la
503
disponible solicitud
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 39
Introducción a las API de REST
Respuestas API REST (Cont.)
• Encabezado - El encabezado de la respuesta es proporcionar información adicional entre el servidor y el
cliente en el formato de par nombre-valor que está separado por dos puntos ( : ), [nombre]: [valor] .Hay
dos tipos de encabezados: encabezados de respuesta y encabezados de entidad.
• Encabezados de respuesta: contiene información adicional que no está relacionada con el contenido
del mensaje. Los encabezados de respuesta típicos para una solicitud de API REST incluyen:
Clave Valor de ejemplo Descripción

Set-Cookie JSESSIONID=30A9DN810FQ428P; Ruta=/ Se utiliza para enviar Cookies desde el servidor


Especificar directivas que DEBEN ser obedecidas
Control de caché Control de caché: max-edad=3600, público por todos los mecanismos de almacenamiento en
el caché

• Encabezados de entidad: son información adicional que describe el contenido del cuerpo del mensaje.
Un encabezado de entidad común especifica el tipo de datos que son devueltos:

Clave Valor de ejemplo Descripción


Tipo de
Aplicación/JSON Especificar el formato de los datos en el cuerpo
contenido

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 40
Introducción a REST API
Respuestas API REST (Cont.)
Paginación de respuestas
• La paginación de respuestas permite dividir los datos en fragmentos.
• La mayoría de las API que implementan la paginación utilizan el parámetro de consulta
para especificar qué página devolver en la respuesta.
Datos de respuesta comprimidos
• Los datos comprimidos reducen la gran cantidad de datos que no se pueden paginar.
• Para solicitar una compresión de datos, la solicitud debe agregar el campo Accept-
Encoding al encabezado de solicitud. Los valores aceptados son:
• gzip
• Comprimir
• desinflar
• br
• identidad
• *
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 41
Introducción a las API REST
Utilizando diagramas de secuencia con API REST
• Los diagramas de secuencia se
Diagrama de secuencia de petición/respuesta
utilizan para explicar una
secuencia de intercambios o de API
eventos.
• El diagrama de secuencia de
solicitud de API tiene tres
secuencias separadas:
• Crear sesión: la solicitud de
inicio se etiqueta como HTTPS:
Crear sesión con credenciales.
• Obtener dispositivos : solicite
una lista de dispositivos de la
plataforma.
• Crear dispositivo : empieza con
una solicitud POST para crear un
dispositivo.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 42
4.5 Autenticación a la API de
REST

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 43
Autenticación a una API REST
Autenticación API REST
• Las API REST requieren autenticación para que los usuarios aleatorios no puedan acceder,
crear, actualizar o eliminar información de forma incorrecta o maliciosa.
• Algunas API que no requieren autenticación son de sólo lectura y no contienen información
crítica o confidencial.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 44
Autenticación a una API REST
Autenticación Vs. Autorización
Autenticación:
• La autenticación demuestra la identidad del usuario.

• Por ejemplo, cuando vas al aeropuerto, tienes que


mostrar tu identificación emitida por el gobierno o usar
biometría para demostrar que eres la persona que afirmas
ser.
Autorización:
• La autorización define el acceso al usuario.

• Es el acto en el que el usuario está demostrando tener


permisos para realizar la acción solicitada en ese recurso.
• Por ejemplo, cuando vas a un concierto, todo lo que
necesitas para mostrar es tu entrada para demostrar que
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
estás permitido entrar. confidencial de Cisco. 45
Autenticación a una API REST
Mecanismos de autenticación
Los tipos comunes de mecanismos de autenticación incluyen:
• Autenticación básica: transmite credenciales como pares de nombre de
usuario/contraseña separados con dos puntos (:) y codificados usando Base64.
• Autenticación al portador: Utiliza un token al portador, que es una cadena generada por
un servidor de autenticación como un servicio de identidad (ID).
• Clave API: Es una cadena alfanumérica única generada por el servidor y asignada a un
usuario. Los dos tipos de claves API son públicas y privadas.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 46
Autenticación a una API REST
Mecanismos de autorización
• La autorización abierta (Oauth) combina la autenticación con la autorización.

• Oauth fue desarrollado como una solución para mecanismos de autenticación inseguros.

• Oauth ha aumentado la seguridad en comparación con otras opciones.

• Hay dos versiones de Oauth - OAuth 1.0 y OAuth 2.0, donde OAuth 2.0 no es compatible
con versiones anteriores.
• El marco de autorización de OAuth 2.0 permite que una aplicación de terceros obtenga
acceso limitado a un servicio HTTP.
• OAuth permite al usuario proporcionar credenciales directamente al servidor de
autorización [Identity Provider (IdP) o a Identity Service (ID)], para obtener un token de
acceso para compartir con la aplicación.
• El proceso de obtención del token se denomina flujo.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 47
Autenticación a una API REST
Laboratorio de API REST - Explore API REST con API Simulator y Postman
En esta práctica de laboratorio se cumplirán los siguientes objetivos:
• Parte 1: Iniciar la máquina virtual (Virtual Machine) de DEVASC.

• Parte 2: Explorar la documentación API usando el simulador API

• Parte 3: Use Postman para realizar llamadas API hacia el simulador API

• Parte 4: Use Python para añadir 100 libros al simulador de API

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 48
4.6 Límites de velocidad
de las API

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 49
Límites de velocidad API
¿Qué son los límites de velocidad?
• Un límite de velocidad de API es una forma de que un servicio web controle el número de
solicitudes que un usuario o una aplicación puede realizar por unidad de tiempo definida.
• La limitación de velocidad ayuda a:

• evitar una sobrecarga del servidor por demasiadas solicitudes a la vez

• proporcionar un mejor servicio y tiempo de respuesta a todos los usuarios

• protege en contra de un ataque de Negación-de-Servicio (DoS)

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 50
Límites de velocidad API
Algoritmos de límite de velocidad
Contador dinámico
Representación visual del Ejemplo de algoritmo de cucharón
• Este algoritmo pone todas algoritmo de cubo con con fugas
las solicitudes entrantes en fugas
una cola de solicitudes en el
orden en que se recibieron.
• Las solicitudes entrantes
pueden entrar en cualquier
caso, pero el servidor
procesará las solicitudes de
la cola a una tasa fija.
• Si la cola de solicitudes está
llena, la solicitud es
rechazada
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 51
Límites de velocidad API
Algoritmos de límite de velocidad (Cont.)
Depósito de Token
• Este algoritmo proporciona a cada usuario un número definido de tokens que pueden usar dentro de un
cierto incremento de tiempo.
• Cuando el cliente realiza una solicitud, el servidor comprueba el depósito para asegurarse de que contiene
al menos un token. Si es así, elimina ese token y procesa la solicitud. Si no hay un token disponible, rechaza
la solicitud.
• El cliente debe calcular el número de tokens que tiene actualmente para evitar solicitudes rechazadas.

Modelo de algoritmo de depósito de Ejemplo del algoritmo de depósito de token


© 2020 Cisco y sus filiales. Todos los derechos reservados. Información

tokens confidencial de Cisco. 52


Límites de velocidad API
Algoritmos de límite de velocidad (Cont.)
Contador de ventanas fijas
• En el algoritmo de contador de Ejemplo de algoritmo de contador de ventana fija
ventanas fijas, a una ventana fija de
tiempo se le asigna un contador para
representar cuántas solicitudes se
pueden procesar durante ese período.
• Cuando el servidor recibe una solicitud,
el contador de la ventana de tiempo
actual debe ser cero.
• Cuando se procesa la solicitud, se
deduce el contador. Si se cumple el
límite para ese período de tiempo,
todas las solicitudes posteriores dentro
de ese período de tiempo serán
rechazadas.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 53
Límites de velocidad API
Algoritmos de límite de velocidad (Cont.)
Contador de ventanas deslizantes
• Este algoritmo permite realizar un Ejemplo de algoritmo de contador de ventana deslizante
número fijo de solicitudes en una
duración determinada de tiempo.
• Cuando se realiza una nueva
solicitud, el servidor cuenta
cuántas solicitudes ya se han
realizado desde el principio de la
ventana hasta la hora actual para
determinar si la solicitud debe
procesarse o rechazarse.
• El cliente debe asegurarse de que
el límite de tarifa no exceda en el
momento de la solicitud.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 54
Límites de velocidad API
Conocer el límite de velocidad
• Muchas APIs de limitación de velocidad agregan detalles sobre el límite de velocidad en el
encabezado de la respuesta.
• Las claves de límite de velocidad comúnmente utilizadas incluyen:
• Límite de límite de velocidad X : el número máximo de solicitudes que se pueden
realizar en una unidad de tiempo especificada.
• Límite de tasa X restante : el número de solicitudes pendientes que el solicitante puede
realizar en la ventana de límite de tasa actual
• X-Rate Limit-Reset - La hora en que se restablecerá la ventana de límite de velocidad.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 55
Límites de velocidad API
Excediendo el límite de velocidad
• Cuando se supera el límite de velocidad, el servidor rechaza automáticamente la solicitud y
devuelve una respuesta HTTP al usuario.
• La respuesta que contiene el error 'límite de velocidad excedido' también incluye un código de
estado HTTP significativo.
• Los códigos de estado HTTP más utilizados son 429: Demasiadas solicitudes o403: Prohibido.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 56
4.7 Trabajo con Webhooks

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 57
Trabajar con Webhooks
¿Qué es un Webhook?
• Un Webhook es una devolución de llamada HTTP, o un HTTP POST, a una URL especificada
que notifica a la aplicación cuando se produce una actividad o evento en particular en los
recursos.
• Con webhooks, las aplicaciones son más eficientes ya que no se requieren mecanismos de
sondeo.
• Los webhooks también se conocen como API inversas, porque las aplicaciones se suscriben a
un servidor webhook registrándose con el proveedor webhook.
• Varias aplicaciones pueden suscribirse a un único servidor webhook.
Ejemplos:
• La plataforma Cisco DNA Center proporciona webhooks que permiten a las aplicaciones de
terceros recibir datos de red cuando se producen eventos especificados.
• Puede crear un webhook para que Cisco Webex Teams le notifique de nuevos mensajes
publicados en una sala en particular.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 58
Trabajar con Webhooks
Consumir un webhook
• Para recibir una notificación de un proveedor de webhook, la aplicación debe cumplir
ciertos requisitos:
• La aplicación debe ejecutarse en todo momento para recibir solicitudes HTTP POST.
• La aplicación debe registrar un URI en el proveedor webhook.
• Además, la aplicación debe manejar las notificaciones entrantes del servidor webhook.

• Utilice herramientas gratuitas en línea para asegurarse de que la aplicación está recibiendo
notificaciones de un webhook.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 59
4.8 Resolución de problemas
de llamadas de API

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 60
Solución de problemas de llamadas API
Solución de problemas de solicitudes REST API
• Habrá instancias en las que realizará una solicitud de API, pero no obtendrá la respuesta
esperada. Por lo tanto, aprender a solucionar los problemas más comunes de la API REST
es importante.
• Tenga siempre a mano la guía de referencia de la API y la información de autenticación de
la API al solucionar los problemas de la API REST.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 61
Solución de problemas de llamadas API
Sin respuesta y código de estado HTTP desde el servidor API
• A veces no se puede acceder a los servidores API o no responden. Puede identificar qué
salió mal de los mensajes de error recibidos como resultado de la solicitud.
Consejos para solucionar problemas de error del lado del cliente:
• Error de usuario: error de estilo del URI cuando se utiliza la API por primera vez.
• Ejemplo de URI no válido: para probar la condición URI no válida, ejecute una secuencia de
comandos que realice la solicitud a un URI que falta el esquema.

El trazado será el siguiente:

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 62
Solución de problemas de llamadas API
Sin respuesta y código de estado HTTP desde el servidor API (Cont.)
Ejemplo de nombre de dominio incorrecto : para probar la condición de nombre de
dominio incorrecta, ejecute una secuencia de comandos que simplemente realiza la solicitud
a un URI que tiene el nombre de dominio incorrecto.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 63
Solución de problemas de llamadas API
Sin respuesta y código de estado HTTP desde el servidor API (Cont.)
Inconvenientes de conectividad
• ¿Hay algún problema con Proxy, Firewall o VPN?

• ¿Hay un error SSL?

Ejemplo de Certificación Inválida


• Este problema sólo puede producirse si el URI de la API REST utiliza una conexión segura
(HTTPS).
• Cuando el esquema del URI es HTTPS, la conexión realizará un protocolo de enlace SSL
entre el cliente y el servidor. Si falla, corrija el certificado no válido
Rastrear:

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 64
Solución de problemas de llamadas API
Sin respuesta y código de estado HTTP desde el servidor API (Cont.)
• Sin embargo, si trabaja en un entorno de laboratorio donde los certificados aún no son
válidos, puede desactivar la configuración de verificación de certificados.
• Para desactivarlo para la biblioteca de peticiones en Python, agregue el parámetro de
verificación a la solicitud.

Resolución:
• Solucione el problema identificando la causa raíz.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 65
Solución de problemas de llamadas API
Sin respuesta y código de estado HTTP desde el servidor API (Cont.)
Consejos para solucionar problemas de error del lado del servidor:
• Funcionamiento del servidor API : apagado, problemas de cableado, cambio de
nombre de dominio, conexión de red.
• Para probar si la dirección IP es accesible, ejecute un script que haga la solicitud a la
URL y espere una respuesta.

• Si el servidor API no está funcionando, obtendrá un largo silencio seguido de un


seguimiento que será el siguiente:

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 66
Solución de problemas de llamadas API
Sin respuesta y código de estado HTTP desde el servidor API (Cont.)
¿Hay algún problema de comunicación entre el servidor API y el cliente?
• Utilice una herramienta de captura de red para ver si la respuesta del servidor API se
pierde en la comunicación entre el servidor API y el cliente.
• Si tiene acceso, eche un vistazo a los registros del servidor API si se recibió la solicitud.

Resolución:
• Los problemas del lado del servidor no se pueden resolver desde el lado del cliente de API.

• Póngase en contacto con el administrador del servidor API para solucionar este problema.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 67
Solución de problemas de llamadas API
Interpretando códigos de estado
• El código de estado forma parte del estándar HTTP/1.1 (RFC 7231), donde el primer dígito define la
clase de la respuesta y los dos últimos dígitos no tienen ningún rol de clase o categorización.
• Las cinco categorías de códigos de estado son las siguientes:
• 1xx: Información - Solicitud recibida, continuando tramitando.
• 2xx: Éxitoso - La acción fue satisfactoriamente recibida, entendida y aceptada.
• 3xx: Redirección - Se deben tomar medidas adicionales para completar la solicitud.
• 4xx: Error del cliente : la solicitud contiene una sintaxis incorrecta o no se puede cumplir.
• 5xx: Error del servidor : el servidor no pudo cumplir una solicitud aparentemente válida.
• Pasos para errores de solución de problemas:
• Compruebe el código de retorno - Puede ayudar a generar el código de retorno en el script durante
la fase de desarrollo.
• Comprobar el cuerpo de respuesta - Salida del cuerpo de respuesta durante el desarrollo
• Usar referencia de código de estado : si los problemas no se pueden resolver comprobando el
código de devolución y el cuerpo de respuesta.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 68
Solución de problemas de llamadas API
Códigos de estado 2xx y 4xx
• 2xx — Error exitoso: recibido, entendido y aceptado correctamente

• 4xx — Error del lado del cliente: el error está en el lado del cliente.

Solución de problemas comunes de errores 4xx:


400 – Solicitud incorrecta
El servidor no pudo entender la solicitud debido a una sintaxis mal formada, que se debe
principalmente a:
• Error de ortografía de los recursos
• Problema de sintaxis en el objeto JSON.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 69
Solución de problemas de llamadas API
Códigos de estado 2xx y 4xx (Cont.)
Ejemplo: Este ejemplo devuelve un código de estado de 400.

El lado del servidor también le dice «No se ha proporcionado ningún campo de


identificación», porque el id es obligatorio para esta solicitud de API.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 70
Solución de problemas de llamadas API
Códigos de estado 2xx y 4xx (Cont.)
401 – No autorizado
• Este mensaje de error significa que el servidor no pudo autentificar la solicitud.
• Compruebe sus credenciales, incluyendo nombre de usuario, contraseña, clave API, token,
URI de solicitud
Ejemplo

La autenticación auth= («person1", "great») debe agregarse en el código

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 71
Solución de problemas de llamadas API
Códigos de estado 2xx y 4xx (Cont.)
403 – Prohibido
• El servidor reconoce las credenciales de autenticación, pero el cliente no está autorizado
para realizar la solicitud.
• Ejemplo: el código de estado 403 no es un problema de autenticación; es solo que el usuario no
tiene suficientes privilegios para usar esa API en particular.

La autenticación debe modificarse para usar person2/super en lugar de person1/great.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 72
Solución de problemas de llamadas API
Códigos de estado 2xx y 4xx (Cont.)
407 - Autenticación Proxy Requerida
• Este código es similar a 401 (no autorizado), pero indica que el cliente debe autenticarse
primero con el proxy.
• En este escenario, hay un servidor proxy entre el cliente y el servidor, y el código de
respuesta 407 indica que el cliente necesita autenticarse con el servidor proxy primero.
409- La solicitud no se pudo completar debido a un conflicto con el estado actual del
recurso de destino.
• Por ejemplo, un conflicto de edición en el que varios usuarios editan un recurso causaría
un error 409.
• Reintentar la solicitud más tarde podría tener éxito, siempre y cuando el servidor resuelva
el conflicto.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 73
Solución de problemas de llamadas API
Códigos de estado 2xx y 4xx (Cont.)
415 - Tipo de media incompatible
• En este caso, el cliente envió un cuerpo de solicitud en un formato que el servidor no admite.

• Ejemplo: Si el cliente envía XML a un servidor que sólo acepta JSON, el servidor devolverá
un error 415.

Omitir el encabezado o agregar un encabezado{"content-type» :"application/ json


"}funcionará.

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 74
Solución de problemas de llamadas API
Códigos de estado 5xx
• 500 - Error del Server Interno
• El servidor encontró una condición inesperada que le impedía cumplir la solicitud.
• 501 - No implementado
• El servidor no admite la funcionalidad necesaria para cumplir esta solicitud
• 502 - Gateway Incorrecto
• El servidor (que actúa como puerta de enlace o proxy) recibió una respuesta no válida
de un servidor entrante.
• 503 - Servicio no disponible
• Actualmente, el servidor no puede gestionar la solicitud debido a una sobrecarga o
mantenimiento programado.
• 504- Tiempo de espera de puerta de enlace
• El servidor (actuando como puerta de enlace o proxy) no recibió respuesta oportuna de
un servidor ascendente.
© 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 75
4.9 Resumen de Comprensión
y uso de las API

© 2016 Cisco y/o sus filiales. Todos los derechos reservados.


Información confidencial de Cisco. 76
Solución de problemas de llamadas API
¿Qué aprendí en este módulo?
• Define las formas en que los usuarios, desarrolladores y otras aplicaciones pueden
interactuar con los componentes de una aplicación.
• Una API puede usar interacciones basadas en web o protocolos de comunicación comunes
y sus propios estándares propietarios.
• Las API se pueden entregar de forma sincrónica (o) asincrónica.

• Los tres tipos más populares de estilos arquitectónicos de API son RPC, SOAP y REST.

• Una API de servicio web REST (API REST) es una interfaz de programación que se
comunica a través de HTTP mientras se adhiere a los principios del estilo arquitectónico
REST.
• La autenticación es el acto de verificar la identidad del usuario. Los tipos comunes de
mecanismos de autenticación incluyen Basic, Bearer y API Key.
• Autorización es el acto en el que el usuario está demostrando tener permisos para realizar
la acción solicitada en ese recurso. © 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 77
Solución de problemas de llamadas API
¿Qué aprendí en este módulo? (Cont.)
• Un límite de velocidad de API es una forma de que un servicio web controle el número de
solicitudes que un usuario o una aplicación puede realizar por unidad de tiempo definida.
• Un webhook es una devolución de llamada HTTP, o un HTTP POST, a una URL
especificada que notifica a su aplicación en caso de una actividad o 'evento' en uno de sus
recursos en la plataforma.
• La guía de referencia de API y la información de autenticación de API deben ser útiles
antes de solucionar problemas.
• Los errores del lado del cliente incluyen error de usuario, URI incorrecto, dominio
incorrecto, un problema de conectividad y un certificado no válido.
• El error del lado del servidor incluye problemas de comunicación entre el servidor y el
cliente.
• Los códigos 4xx son errores del lado del cliente y los códigos 5xx son errores del lado del
servidor. © 2020 Cisco y sus filiales. Todos los derechos reservados. Información
confidencial de Cisco. 78
Solución de problemas de API Calls
Lab — Integración de una API REST con Py
En esta práctica de laboratorio se cumplirán los siguientes objetivos:
• Parte 1: Iniciar DEVASC VM

• Parte 2: Demostrar la aplicación de direcciones MapQuest

• Parte 3: Obtener una clave API de MapQuest

• Parte 4: Construir la aplicación básica de dirección MapQuest

• Parte 5: Actualizar la aplicación de direcciones MapQuest con más características

• Parte 6: Probar la funcionalidad total de la aplicación

© 2020 Cisco y sus filiales. Todos los derechos reservados. Información


confidencial de Cisco. 79

También podría gustarte