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, el

API

.

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 del

API

.

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 o

API

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 de

API

Server, permite ver el contenido de las distintas tablas de la Base de Datos y los detalles de la especificación del

API

.
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 un

API

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ón

API

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 un

API

Client como postman, o desde un lenguaje de programación, puedas construir el request y testear el funcionamiento del endpoint

Links to the project

API

Server en GitHub

API

Server en episodios

API

Server Tutorial