Las 7 mejores tecnologías para el desarrollo de API REST
Con el surgimiento de la web 2.0 o web social, llegó un cambio de paradigma en Internet.
Los sitios dejaron de ser simples contenedores de información para convertirse en los sitios dinámicos que conocemos hoy.
Redes sociales, sitios interactivos, comercio electrónico, foros y comunidades online basan su funcionamiento en el intercambio de información entre usuarios y servidores.
Desde su surgimiento se produjo una expansión importante de internet, pero nos quedaba un detalle, la integración entre estas aplicaciones era muy difícil de lograr por las diferencias entre los lenguajes de programación y arquitecturas utilizadas.
Es por esto que surge la arquitectura orientada a servicios, donde se descentraliza el sistema en pequeñas unidades que responden a un objetivo bien definido y se integran entre ellas para lograr un sistema completo.
Una de las tecnologías más utilizadas para crear estos servicios en la actualidad es REST, es por esto que hoy te traigo mi selección de los mejores software para desarrollar una API Rest. Comenzamos.
Nombre | Precio | Lenguaje | Código Abierto | Licencia | Estrellas de Github |
---|---|---|---|---|---|
Express | Gratuito | Javascript | Sí | MIT | 54 mil |
Flask | Gratuito | Python | Sí | BSD | 56.3 mil |
Django Rest Framework | Gratuito | Python | Sí | BSD | 21.6 mil |
FastAPI | Gratuito | Python | Sí | MIT | 34.5 mil |
Lumen | Gratuito | PHP | Sí | MIT | 7.3 mil |
Slim | Gratuito | PHP | Sí | MIT | 11.1 mil |
Gin | Gratuito | Go | Sí | MIT | 50.4 mil |
¿Qué es una API REST?
Empezamos aclarando que cuando hablamos de REST estamos refiriéndonos a Transferencia de Estado Representacional.
No es más que una arquitectura de desarrollo web que se apoya en el protocolo HTTP para recibir peticiones de un recurso específico y devolver un resultado en un formato de texto organizado.
✔ También te puede interesar leer: Heroku: despliega tu aplicación en la nube en 3 minutos
Ahorra en software
Únete al boletín premium semanal con los mejores lifetime deals y ofertas de software.
¿Para qué me sirve tener una API REST?
El objetivo de una API REST es brindar información sobre tu sistema o negocio de un modo controlado con las restricciones que definas, permitiendo a terceros que puedan desarrollar sus aplicaciones para que interactúen con tu sistema.
Un ejemplo muy simple de esto es la autenticación en sitios web utilizando nuestras redes sociales, en este caso tanto Facebook como Google tienen APIs implementadas que ofrecen este servicio a terceros.
¿Con qué tecnología puedo desarrollar una API REST?
A continuación, te muestro todas las tecnologías de la tabla anterior de un modo más detallado.
Express
Comenzamos con Express, definido por sus creadores como un framework de desarrollo de aplicaciones web minimalista y flexible para NodeJS.
Se trata de un framework muy sencillo basado en Javascript que ha servido de base para muchos otros marcos de trabajo del mercado.
Su minimalismo y velocidad de respuesta lo hace un candidato muy fuerte para el desarrollo de API Rest.
A su rapidez contribuye enormemente NodeJS, con su modelo de entrada y salida asíncronas que reduce el tiempo de respuesta al continuar la ejecución sin esperar el retorno de las operaciones externas.
Su concepción simplista, que puede ser un inconveniente cuando quieres implementar un sistema completo con esta tecnología, se convierte en un magnífico aliado en el desarrollo de APIs.
Sin utilizar librerías externas, funcionalidades extra, ni cambiar el curso normal de eventos en el framework es posible crear los puntos de entrada de la API. Veamos un ejemplo sencillo.
const express = require("express");
const app = express();
app.post('/hola', function (req, res) {
res.send('Hola POST desde SaasRadar');
});
app.get('/hola', function (req, res) {
res.send('Hola GET desde SaasRadar');
});
app.listen(3000, () => {
console.log("El servidor está inicializado en el puerto 3000");
});
De este modo si hacemos una petición por GET al recurso hola obtendremos un mensaje y utilizando el método POST obtendremos otro diferente.
Puedes utilizar Express en Windows, Linux o macOS, simplemente debes instalar la versión de NodeJS correspondiente a tu sistema operativo y luego descargar el framework con npm mediante el comando:
npm install -g express
Express es un framework de software libre y código abierto disponible bajo la licencia MIT, por lo que puedes utilizarlo de forma gratuita.
Web Oficial: https://expressjs.com
✔ También te puede interesar leer: API REST: Cómo consumir servicios en diferentes lenguajes
Flask
En SaasRadar ya conocíamos a Flask desde el artículo sobre los mejores framework backend. Se trata de un microframework con diseño minimalista y enfocado en el rendimiento.
Al utilizar Flask tienes a tu disposición la versatilidad que brinda su lenguaje Python, ampliamente extendido y utilizado tanto en scripts de automatización de tareas, aplicaciones de escritorio, inteligencia artificial o desarrollo web por poner algunos ejemplos.
🚀 Mis herramientas de prueba de software preferidas
Flask destaca por su sistema de plugins que permiten extender las funcionalidades básicas que presenta por defecto, posibilitando que tengas en tu API solo lo necesario para optimizar su funcionamiento.
Veamos como queda un ejemplo muy simple de API Rest con Flask.
import flask
app = flask.Flask(__name__)
@app.route('/hola', methods=['GET'])
def hello_get():
return "<h1>Hola GET desde SaasRadar</h1"
@app.route('/hola', methods=['POST'])
def hello_post():
return "<h1>Hola POST desde SaasRadar</h1"
app.run()
Web Oficial: https://flask.palletsprojects.com/
Django Rest Framework
Siguiendo el hilo de Python presentamos ahora Django Rest Framework, una aplicación que se integra con Django convertirse en una poderosa y flexible herramienta para el desarrollo de API Rest.
Al elegir este framework tendrás un entorno de desarrollo de software libre y código abierto que permite la vinculación entre la API y las entidades que conforman la representación de la base de datos en el modo en que Django la maneja (ORM).
Al desarrollar una API con esta tecnología se genera automáticamente una web desde donde puedes hacer peticiones a los recursos definidos y ver los resultados de un modo elegante.
Esta característica resulta de mucha utilidad en etapas de desarrollo y pruebas.
✔ También te puede interesar leer: Webhooks y sus diferencias con una API
El framework proporciona además varias políticas de autenticación, serialización, vistas basadas en expresiones regulares y una amplia documentación.
Te presento un ejemplo sencillo de como se vería una API Rest con esta tecnología.
from rest_framework.response import Response
from rest_framework.decorators import api_view
from django.conf.urls import url, include
@api_view(['GET','POST'])
def hello(request):
if request.method == 'POST':
return Response({"Hola POST desde SaasRadar"})
return Response({"Hola GET desde SaasRadar"})
urlpatterns = [
url(r'^hello/$', hello),
]
Web Oficial: https://www.django-rest-framework.org
FastApi
Para terminar con Python analicemos a FastAPI.
Se trata de un marco de trabajo definido por sus desarrolladores como una herramienta de alto desempeño, fácil de aprender, rápido de programar y lista para producción.
Si te decides por FastAPI tendrás a tu disposición un sistema intuitivo con gran soporte en los IDE y editores más simples. Además, está diseñado basado en los estándares abiertos para API, de modo que minimiza la duplicación del código y permite gastar poco tiempo leyendo extensa documentación.
Aún con todas estas características impresionantes, su principal bondad es precisamente la que le da su nombre.
Es un framework muy rápido, con tiempos comparables a NodeJS.
Al igual que nuestra propuesta anterior, FastAPI genera la documentación interactiva de la API automáticamente.
Veamos como luce una implementación de REST utilizando esta herramienta.
from fastapi import FastAPI
my_api = FastAPI()
@my_api.get("/hola")
async def hello_get():
return {"message": "Hola GET desde SaasRadar"}
@my_api.post("/hola")
async def hello_post():
return {"message": "Hola POST desde SaasRadar"}
Si te preguntas cuanto debes pagar para utilizar este framework te tengo buenas noticias.
FastAPI forma parte de la familia de software libre y se encuentra disponible bajo la licencia MIT, por lo que puedes utilizarlo de forma totalmente gratuita.
Web Oficial: https://fastapi.tiangolo.com
Lumen
Lumen es un microframework de código abierto para PHP creado como una alternativa minimalista a Laravel para mejorar la velocidad en escenarios ligeros.
Mediante su uso es posible desarrollar microservicios sin perder la compatibilidad con Laravel.
Este framework ofrece muchas de las características de Laravel, como el sistema de rutas, la autenticación, sistema de caché, registros y errores en las operaciones y manejo de eventos.
La integración con Laravel llega hasta tal punto que en cualquier momento puedes cambiarte a este otro framework si crees que necesitas las características que ofrece.
Veamos como luce nuestro ejemplo en Lumen.
//routes/web.php
$router->group(['prefix' => 'api'], function () use ($router) {
$router->get('hola', ['uses' => 'ApiController@hello_get']);
$router->post('hola', ['uses' => 'ApiController@hello_post']);
}
//app/Http/Controllers/ApiController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiController extends Controller
{
public function hello_get()
{
return response()->json(“Hola GET desde SaasRadar”);
}
public function hello_post()
{
return response()->json(“Hola POST desde SaasRadar”);
}
}
Según su web oficial, su rendimiento en cuanto a peticiones atendidas por segundo es la mayor entre los framework PHP, si quieres consultar estas estadísticas te dejo el enlace.
Web Oficial: https://lumen.laravel.com
Slim
Una alternativa interesante para Lumen en PHP es Slim. Como el anterior, es un microframework ideal para pequeñas aplicaciones y APIs.
Slim enfoca su prioridad en la seguridad y velocidad de respuesta, a lo que contribuye su simplicidad y peso ligero.
Otra de las ventajas que posee es su sencillez, si eres un programador sin mucha experiencia Slim puede ser solución para terminar tu trabajo con rapidez y calidad.
Desde el punto de vista funcional, Slim aporta un sistema de rutas, el uso de middlewares para interceptar el flujo normal de tu proyecto, e inyección de dependencias.
Veamos nuestro ejemplo en Slim:
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$app->get('/hola}', function (Request $request, Response $response, array $args) {
$response->getBody()->write("Hola GET dede SaasRadar");
return $response;
});
$app->post('/hola}', function (Request $request, Response $response, array $args) {
$response->getBody()->write("Hola POST dede SaasRadar");
return $response;
});
$app->run();
Slim es un framework de software libre y código abierto, por lo que puedes adquirirlo de forma gratuita siguiendo las indicaciones para su instalación en su web oficial.
Web Oficial: https://www.slimframework.com
Gin
Gin es un framework escrito en Go enfocado en la productividad y la velocidad de respuesta, lo que lo convierte en un candidato ideal para desarrollar una API.
Entre las características de este framework tenemos el agrupamiento de rutas, el uso de middlewares para intervenir en el curso normal de los eventos, enlace con los modelos y validaciones.
Puedes elegir además qué tipo de estructura prefieres para el intercambio de información entre YAML, XML y JSON.
Veamos cómo quedaría el código de nuestro ejemplo en Gin:
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/hola", func(c *gin.Context) {
c.JSON(200, gin.H{
"Hola GET desde SaasRadar",
})
})
r.POST("/hola", func(c *gin.Context) {
c.JSON(200, gin.H{
"Hola POST desde SaasRadar",
})
})
r.Run()
}
Si eres simpatizante del lenguaje Go te recomiendo este framework, el cual puedes utilizar de forma gratuita ya que se encuentra bajo la licencia MIT.
Web Oficial: https://github.com/gin-gonic/gin
Hasta aquí nuestra selección de las mejores tecnologías para el desarrollo de API Rest. Quedaron fuera algunas alternativas de calidad, pero era imposible mencionarlas todas, así que nos enfocamos en traerte lo mejor en cuanto a velocidad, facilidad de uso y precio.
🔴 ¿Necesitas una tecnología para consumir la API que vas a programar? Si la respuesta es afirmativa te puedo ayudar, en SaasRadar te mostramos los mejores framework frontend.