API Server SFE (Software for Education)
Las APIs
son un contrato explicito acerca de cómo dos aplicaciones intercambian información. Debemos entender cómo funcionan y en ocasiones, aprender a construirlas para resolver problemas de automatización.Cuando se habla de
APIs
, específicamente APIs basadas en HTTP, hay que considerar varios componentes: el servidor donde reside la aplicación, la o las bases de datos donde persisten los mismos, la interfaz gráfica de la aplicación, las funciones de la aplicación sobre los datos, y finalmente, elAPI
.El
API
(Application Program Interface) puede entenderse como un módulo (API
Server) que nos permite acceder a los datos de una aplicación desde otra (API
Client), siguiendo las especificaciones de formato y funcionalidad establecidas en la definición delAPI
.La definición de un
API
, no es otra cosa que un conjunto de objetos llamados endpoints (funciones) que definen acciones, y el formato o encoding de los datos (JSON, XML, MIBs, etc.) que las funciones o acciones deben presentar o manipular.En un
API
HTTP, un endpoint se identifica a través de un URL, y cada vez que es convocado (request oAPI
Call), este ejecuta las acciones y retorna datos en el formato especificado. Así por ejemplo, un call al endpoint http://api/v1/devices, devuelve la lista de dispositivos almacenados en la BD de la aplicación que los contiene.En el mundo de Automatismo, esto es, escribir software para que una aplicación le pase a otra (dispositivo de red, VM en un servidor o Cloud, etc.) parámetros de configuración y/o consulta, saber sobre APIs en detalle es fundamental pues la comunicación entre aplicaciones se realiza siempre via
APIs
(CliConf, RestConf, NetConf, RestFull, etc.).En tal sentido y para facilitar el estudio, o para que sirva como plataforma de testing, construimos
API
Server SFE (Software for Education).API
SFE es un proyecto completo que contiene todos los elementos mencionados anteriormente.Ya sea se construya desde cero o se utilice para testear el
API
Request mientras se escribe, por ejemplo, utilizando el lenguaje Python,API
Server es de suma utilidad durante dicho proceso.Interfaz gráfica
La interfaz gráfica deAPI
Server, permite ver el contenido de las distintas tablas de la Base de Datos y los detalles de la especificación delAPI
.Las siguientes secciones en el menú de navegación Navbar, seleccionan las tablas y despliegan su contenido.
Usuarios y Tokens
Las tablas Usuarios y Tokens, contienen las credenciales que se deben usar cuando se construye unAPI
Request. Usuario y Password corresponden al método de autorización Basic (RFC 7617) y Tokens a los método de autorización Bearer Token (RFC 6750) o OAuth 2 (RFC 6749).Sección API
La secciónAPI
detalla la especificación y funcionamiento (métodos) de cada endpoint. Datos tales como Verbos soportados (GET, POST, etc), Headers, Body, Authorization, etc., aparecen en detale para que tanto desde unAPI
Client como postman, o desde un lenguaje de programación, puedas construir el request y testear el funcionamiento del endpointLinks to the project
API
Server en GitHubAPI
Server en episodiosAPI
Server Tutorial