En este tema, primero obtendrá una descripción general de alto nivel sobre el uso de las API REST. Entonces, más adelante en el documento, una inmersión más profunda discutirá el código de ejemplo. El primer ejemplo usa el Analytics API para recobrar y mostrar en la barra de control del reproductor la cantidad de vistas que el vídeo que el jugador tiene hoy en día tiene. El segundo ejemplo, un poco más complejo, usa el Analytics API en conjunción con la Brightcove Player Catálogo para recuperar los videos más populares de una cuenta y mostrarlos en una lista de reproducción. La discusión del código en este documento se centrará en recuperar los datos deseados de la API REST adecuada.
Para emplear las API REST necesita tener ciertas piezas en su lugar. En resumen, son:
El siguiente diagrama muestra la interacción entre las tres entidades centrales del proceso para recobrar datos de una de BrightcoveAPIs de REST:
El código del lado del cliente del servicio cambia significativamente en dependencia de la API a la que pide los datos. Como se mencionó previamente, el proxy es una escritura una vez y no altera parte del código, y las API se sostienen por Brightcove. Esta es la razón por la que el énfasis en el documento se centrará en aprender a modificar el código del cliente para recuperar los datos deseados de una de las API.
El siguiente diagrama se centra en las partes clave del código del cliente del servicio, que son:
HTTPRequest
al proxy. Para evitar la ambigüedad, la función lleva por nombremakeRequest()
. Está representado en el lado derecho del diagrama a continuación.makeRequest()
función. Está representado en la esquina inferior izquierda del diagrama. La llamada pasa una función amakeRequest()
como un parámetro. Entonces enmakeRequest()
Esa función lleva por nombre. Este es un caso de un anónimo definido.Ves las 2 secciones en el diagrama etiquetado
Actividad asíncrona. Aunque se representa en el diagrama en dos lugares diferentes, esta es en realidad la misma actividad asincrónica, y representa el tiempo desconocido que requiere:
Tenga en cuenta que las flechas de flujo lógico del cuadro que llama
makeRequest()
(cuadro inferior izquierdo) semeja apuntar que el código se ejecuta en dos momentos diferentes, que es precisamente el caso. La llamada a la función se realiza, mas la función de devolución de llamada no se ejecuta hasta
makeRequest()
ha hecho su trabajo y se ejecuta la función de devolución de llamada, que devuelve los datos solicitados al código de llamada a la función.
En lugar de mirar el código como una sola pieza, será presentado y discutido en secciones. Algunas de las secciones se relacionarán con el diagrama de arriba.
Esta sección de código contiene el código básico. Brightcove Player código de inserción en la página.
id
atributo agregado.Esta sección de código inicia seguridad pagina web madrid la llamada a
makeRequest()
. En términos generales, para una petición de lectura deberá suministrar la siguiente información:
/bcls/bcls-proxy/doc-samples-proxy-v2.php
/v1/alltime/accounts/ /videos/
GET
.Un ejemplo a continuación:
loadstart
evento por lo que elmediainfo
objeto se rellena. Asignar variables para sostener los valores necesarios para el Analytics API punto finalmakeRequest()
Esta sección de código hace que la llamada a
makeRequest()
función. Tenga en cuenta que se pasan dos parámetros. El primero es el objeto de opciones que contiene información para el punto final, y el segundo es la función de devolución de llamada. Recuerde, esta es una llamada asíncrona, por lo que la función de devolución de llamada definida anónimamente no se ejecutará hasta el momento en que la API REST haya devuelto los datos a la
makeRequest()
función.
makeRequest()
función, pasando los valores requeridos para la llamada en eloptions
objeto. En este caso, el objeto contiene lo siguiente:console.log()
declaraciones que muestran:JSON.parse()
método que hace la conversión de cadena a objeto.object.property
notación.JSON.parse()
método que hace la conversión de cadena a objeto.object.property
notación.La siguiente captura de pantalla de la consola muestra datos reales
console.log
declaraciones:
makeRequest()
funciónEsta sección del documento examina el código que verdaderamente define el
makeRequest()
función. El código que define la función está escrito de tal modo que NO precisa ser cambiado, sino se usa repetidamente tal como está. Usted puede hallar casos extremos que esto no es true, mas para la gran mayoría de los usos, este código NO necesita alterarse.
Sigue una discusión línea por línea del código:
XMLHttpRequest
el objeto es creadoreadyState
cambios.try-catch
en en el caso de que la petición falle en un nivel alto.if
declaraciones para asegurarse de que la petición haya finalizado (readyState
es cuatro) y se completó con éxito, el estado está en el rango doscientos. A continuación, se muestra el registro de la consola delreadyState
ystatus
valores en la definición del supervisor de eventos:XMLHttpRequest.onreadystatechange
evento.Este código muestra cómo colocar los datos devueltos en la community manager que es de control. Esta función lleva por nombre al final de la función de devolución de llamada, que se muestra en
Llamar a makeRequest ()la sección de arriba.
spacer
elemento en la barra de control.div
elemento.div
elemento.document.getElementsByClassName()
método para obtener la barra de controlspacer
elemento.spacer
para mostrar el total de vistas justificadas a la derecha y cara abajo 10px desde la parte superior de laspacer
.spacer
.El código completo y funcional se encuentra en este repositorio de GitHub:.
Como puede ver, hay múltiples piezas implicadas al utilizar las API REST. Esto puede presentar desafíos cuando una aplicación no funciona apropiadamente. ¿Dónde empiezas a depurar?
En esta sección se hacen un par de creacion de contenidos y son un excelente lugar para iniciar su aventura de depuración. Las próximas dos secciones le brindan una manera de ver la información más básica que necesita, qué se transmite para realizar la llamada y qué se devuelve.
El código del lado del usuario que se examina en este documento debe ver básicamente con administrar las opciones correctas que se utilizarán con el proxy y, a su vez, la API real. Por lo tanto, saber que las opciones son adecuadas es esencial para el adecuado funcionamiento de su código. Una forma fácil de hacer esto es registrar en la consola el
options
objeto justo antes de que pasen a la
makeRequest
Función donde se utilizan:
Lo que contiene el objeto de opciones variará según lo que intente hacer, pero siempre y en toda circunstancia habrá algunos conceptos básicos, que son:
GET
,POST
orPATCH
.
/v2/accounts/ /players/playback/v1/accounts/ /videos/ /v1/alltime/accounts/ /videos/
Es posible que se requieran otras propiedades en el objeto de opciones en dependencia de la solicitud de API. Este es un caso de lo que vería en la consola al registrar el objeto de opciones para realizar una petición para todos y cada uno de los jugadores en una cuenta específica:
Aquí hay un objeto de opciones registradas un poco más complejo que se emplea al actualizar jugadores:
Lo que se devuelve variará según los datos que haya pedido, y si se devuelve un fallo. Mas con independencia de lo que se devuelva, lo más probable es que desee ver qué datos se devuelven. Una forma fácil de hacer esto es registrar en la consola el raw
response
datos justo después de la llamada a la
makeRequest
función:
Lo que se devolverá tiene posibilidades prácticamente infinitas, mas a continuación existen algunos ejemplos. El primero muestra el comienzo de una respuesta cuando se solicita a todos y cada uno de los jugadores en una cuenta:
Aquí está la contestación después de actualizar los jugadores, utilizando el
PATCH
Método HTTP:
Aquí hay una vista con un formato más agradable de los datos en la primera respuesta:
Y finalmente, aquí hay una respuesta muy valiosa de cuando ocurrió un error. En este caso, se estaba utilizando una cuenta sin las credenciales adecuadas:
Si tiene inconvenientes, aquí hay otras cosas que debe buscar.
Mire la contestación y asegúrese de que sea una cadena JSON (que empieza con una
o una
[
). Hay algunos casos en los que una solicitud podría no devolver JSON: un Analytics API llame, por poner un ejemplo, si configura el
format
parámetro para
csv
or
xlxs
. Nuevamente, si efectúa ese género de peticiones, deberá ajustar su código para manejar contestaciones que no sean JSON.
Mire la respuesta y asegúrese de que sea una cadena JSON (que comienza con una
o una
[
). Hay algunos casos en los que una petición podría no devolver JSON: un Analytics API llame, por servirnos de un ejemplo, si configura el
format
parámetro para
csv
or
xlxs
. De nuevo, si efectúa ese género de solicitudes, deberá ajustar su código para manejar contestaciones que no sean JSON.
Como se mencionó anteriormente, el proxy se puede redactar en el idioma de su elección. los Brightcove Los ejemplos de documentación de la API utilizan un proxy escrito en PHP. Puesto que la implementación del proxy es tan dependiente del idioma, el código PHP a continuación no se analizará en detalle en este documento.
La funcionalidad básica proporcionada por un proxy debe incluir:
Aunque el código completo para el servidor proxy se muestra arriba, también se halla en el repositorio de GitHub:en el objeto
phpcarpeta.
Este segundo ejemplo es más complejo que el detallado anteriormente. Este caso muestra los vídeos diez más populares de una cuenta en una lista de reproducción. Los principales pasos del código son:
player.catalog.getVideo()
. Como es lógico, esto implica múltiples llamadas asincrónicas usando elcatalog
. Se escribe una función socorrer para recobrar los objetos de video basados en ID y colocar los objetos en una matriz.Como ahora está familiarizado con muchos de los conceptos y códigos específicos sobre cómo llamar a las API, solo el código que llama al
makeRequest()
la función es detallada.
makeRequest()
función que pasa como razonamientos las opciones precisas para una triunfante llamada a la API REST, junto con una función de devolución de llamada definida anónimamente (destacada en amarillo). Esto debería sonarle familiar desde arriba. Fundamental, elmakeRequest()
función que tiene por nombre ES LA MISMA FUNCIÓN EXACTA UTILIZADA EN EL EJEMPLO ANTERIOR. Puedes hacer lo mismo en tu código. losmakeRequest()
La función fue escrita para ser vuelta a utilizar con cualquier llamada a un Brightcove API REST.getVideoData
función de ayuda que usa una función de devolución de llamada para poblar elvideoObjects
matriz basada en ID pasados.El ejemplo completo de funcionamiento se encuentra en este CodePen:.