Una API o Interfaz de Programación de Aplicaciones (Application Programming Interface) es un protocolo que define cómo los dispositivos y las aplicaciones se comunican entre sí. Describe cómo los clientes que consumen las APIs pueden acceder a los recursos y qué métodos funcionan con su arquitectura.A la hora de crear una API para la integración de software, el diseño REST (REpresentational State Transfer) destaca como el enfoque de arquitectura para el diseño de servicios web y se refiere al conjunto de reglas específicas que establecen como estos servicios se comunican a través de internet.
El estilo arquitectónico REST está compuesto por varios principios:
- sin estado: las aplicaciones REST deben ser sin estado.
- separación cliente-servidor: la modificación independiente de estos componentes es esencial.
- sistema en capas: los componentes de los sistemas REST no deben poder ver más allá de su capa.
- caché: los datos del servidor REST deben marcarse como almacenables o no en caché.
- interfaz uniforme: se hace hincapié en una interfaz uniforme entre los componentes.
REST es independiente de cualquier protocolo subyacente y no está necesariamente unido a HTTP pero en las implementaciones más comunes de API REST, se usa HTTP como protocolo de aplicación.
De forma muy resumida, REST es un estilo arquitectónico y las API REST son servicios web que lo implementan.
Para complicar más las cosas, los desarrolladores llaman a una API HTTP que usa un estilo CRUD (Create, Read, Update, Delete) un servicio RESTful.
La API de Blogger v3 permite que las aplicaciones cliente vean y actualicen el contenido de Blogger. Tu aplicación cliente puede usar Blogger API v3 para crear nuevas publicaciones en tu blog, editar o eliminar publicaciones existentes y consultar publicaciones que coincidan con criterios concretos.
Cada solicitud que se envía a las APIs de Blogger debe identificar tu aplicación ante Google. Hay dos formas de identificar una aplicación: usando un token OAuth 2.0 (que también autoriza la solicitud) y/o usando la clave API de la aplicación.
- si la solicitud requiere autorización (como una solicitud de datos privados de una persona), la aplicación debe proporcionar un token de OAuth 2.0 con la solicitud.
- si la solicitud no requiere autorización (como una solicitud de datos públicos), la aplicación debe proporcionar una clave API o un token de OAuth 2.0, o ambos, la opción que consideres más conveniente.
Una vez que tengas una clave API, tu aplicación puede añadir el parámetro de consulta a todas las URL de solicitud con
key=yourAPIKeyEl formato específico para las URI de la API de Blogger es:
https://www.googleapis.com/blogger/v3/users/userId
https://www.googleapis.com/blogger/v3/users/self
https://www.googleapis.com/blogger/v3/users/userId/blogs
https://www.googleapis.com/blogger/v3/users/self/blogs
https://www.googleapis.com/blogger/v3/blogs/blogId
https://www.googleapis.com/blogger/v3/blogs/byurl
https://www.googleapis.com/blogger/v3/blogs/blogId/posts
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/bypath
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/search
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments/commentId
https://www.googleapis.com/blogger/v3/blogs/blogId/pages
https://www.googleapis.com/blogger/v3/blogs/blogId/pages/pageId
Pongamos en práctica algunos métodos de la API de Blogger.
1- vamos a mostrar información del Blog usando la siguiente url:
https://www.googleapis.com/blogger/v3/blogs/byurl?url=https://www.tecnoblog.guru&key=yourAPIKey
<div id="api-blogger-v3" class="api-blogger-v3"></div>
<script>
function handleResponse1(response){
document.getElementById("api-blogger-v3").innerHTML += "<div><a href='" + response.url + "' title='" + response.title + " target='_blank'>" + response.name + "</a></div><div>" + response.description + "</div><div>" + (response.published).substring(0,10) + "</div>";
}
</script>
<script async="true" defer="true" src="https://www.googleapis.com/blogger/v3/blogs/byurl?url=https://www.tecnoblog.guru&callback;=handleResponse&key;=yourAPIKey"></script>
2- ahora vamos a mostrar una lista con los cinco últimos post publicados en TecnoBlog invocando a la url:
https://www.googleapis.com/blogger/v3/blogs/blogId/posts
<div id="api-blogger-v3" class="api-blogger-v3"></div>
<script>
function handleResponse1(response){
for(var i=0; i</*response.items.length*/5; i++){
document.getElementById("api-blogger-v3").innerHTML += "<div><a href='" + response.items[i].url + "' title='" + response.items[i].title + " target='_blank'>" + response.items[i].title + "</a></div>" + (response.items[i].published).substring(0,10) + "<br/>" + "<div class='article'><em>" + response.items[i].content.substr(0,840) + "...</em></div><hr/>";
}
}
</script>
<script async="async" defer="defer" src="https://www.googleapis.com/blogger/v3/blogs/5415513870832441455/posts?callback=handleResponse1&key;=yourAPIKey"></script>
3- por último, vamos a mostrar los últimos cinco artículos publicados en la categoría "ciberseguridad" llamando a la url:
https://www.googleapis.com/blogger/v3/blogs/5415513870832441455/posts/search?q=ciberseguridad&callback;=handleResponse&key;=yourAPIKey
<div id="api-blogger-v3-3" class="api-blogger-v3"></div>
<script>
function handleResponse2(response) {
for(var i=0; i</*response.items.length*/5; i++) {
document.getElementById("api-blogger-v3-2").innerHTML += "<div><a href='" + response.items[i].url + "' title='" + response.items[i].title + " target='_blank'>" + response.items[i].title + "</a></div>" + (response.items[i].published).substring(0,10) + "<br/>" + "<div class='article'><em>" + response.items[i].content.substr(0,840) + "...</em></div><hr/>";
}
}
</script>
<script async="async" defer="defer" src="https://www.googleapis.com/blogger/v3/blogs/5415513870832441455/posts/search?q=ciberseguridad&callback;=handleResponse2&key;=yourAPIKey"></script>
Jose Maria Acuña Morgado - Web Developer - Ethical Hacking
