🚀 Crea APIs REST y GraphQL con MongoDB usando RESTHeart (¡sin escribir código!)


¿Y si pudieras tener una API REST o GraphQL lista para usar… en segundos… y sin escribir ni una línea de código?
Con RESTHeart, esto es totalmente posible. Si trabajas con Java y MongoDB, esto puede ser tu nuevo superpoder. 🦸♂️
🧩 ¿Qué es RESTHeart?
RESTHeart es un servidor de APIs open source que:
- Expone tus colecciones MongoDB automáticamente como endpoints REST y GraphQL
- Incluye autenticación, control de roles, y una API de administración
- Permite extender con Java cuando necesitas más personalización
Ideal para proyectos que necesitan agilidad o prototipado rápido.
⚙️ Cómo ejecutar RESTHeart
✅ Opción 1: Ejecutar con Java
java -jar restheart.jar
Esto lanza el servidor y se conecta por defecto a MongoDB en localhost:27017
.
🐳 Opción 2: Docker + Docker Compose
services:
mongodb:
image: mongo:latest
ports:
- "27017:27017"
restheart:
image: softinstigate/restheart:latest
ports:
- "8080:8080"
environment:
MONGO_URI: mongodb://mongodb:27017
Y luego:
docker compose up -d
Cuando todo esté arriba, prueba:
curl localhost:8080/ping
Deberías recibir un simpático: "Greetings from RESTHeart!"
👋
🔐 Autenticación integrada
RESTHeart gestiona usuarios en una colección MongoDB. Por defecto, tienes:
- Usuario:
admin
- Contraseña:
secret
curl -u admin:secret localhost:8080/
Respuesta esperada:
["acl", "users"]
🛠️ CRUD con la REST API
Una vez lanzado, puedes crear y consultar datos directamente con curl
.
Crear colección:
curl -u admin:secret -X PUT localhost:8080/posts
Insertar un post:
curl -u admin:secret -X POST localhost:8080/posts \
-d '{"title": "Intro a RESTHeart", "author": "Juan Dev"}' \
-H "Content-Type: application/json"
Consultar:
curl -u admin:secret localhost:8080/posts
🎯 ¿REST no te basta? ¡También GraphQL!
Primero, crea la colección de definiciones:
curl -u admin:secret -X PUT localhost:8080/gql-apps
Luego, define tu schema en un archivo posts.schema:
{
"_id": "restheart-posts",
"descriptor": {
"name": "restheart-posts",
"uri": "restheart-posts",
"enabled": true
},
"schema": "type Post { title: String author: String } type Query { posts: [Post] }",
"mappings": {
"Query": {
"posts": {
"db": "restheart",
"collection": "posts"
}
}
}
}
Cárgalo:
curl -u admin:secret -X POST localhost:8080/gql-apps \\
-d "@posts.schema" \\
-H "Content-Type: application/json"
¡Listo! Ahora puedes consultar con GraphQL:
curl -u admin:secret -X POST localhost:8080/graphql/restheart-posts \\
-d "{ posts { title author } }" \\
-H "Content-Type: application/graphql"
🎉 Conclusión
RESTHeart te permite:
✅ Crear APIs REST y GraphQL con MongoDB ✅ Tener autenticación lista sin escribir lógica ✅ Agregar Java para extender cuando lo necesites
Perfecto para prototipos rápidos o apps que escalan con MongoDB. ¡Échale un vistazo, que merece la pena! 👀
Subscribe to my newsletter
Read articles from Carlos Exposito directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
