RESTHeart is a REST microservice for MongoDB.
With RESTHeart teams can focus on building Angular, React, Vue, iOS or Android applications, because most of the server-side logic usually necessary for CRUD (Create, Read, Update, Delete) operations is automatically handled, without the need to write any code except for the client logic.
For these reasons, RESTHeart is widely used by freelancers, Web agencies ans System Integrators with deadlines, because it allows them to focus on the most creative parts of their work.
For more ideas have a look at the collection of common use cases.
RESTHeart is written in Java and is build on top of the Undertow high performance, non-blocking HTTP server.
We created RESTHeart because:
- All modern applications require a common set of basic REST APIs;
- Many recurrent non-functional requirements, like authentication and authorization, HTTP protocol support, etc… can be solved once for all;
- We were tired of configuring and maintaining complicated application servers.
The founding ideas around RESTHeart are:
- The key architectural trends in software development are microservices architecture and NoSQL databases
- Developers primarily need a backend to easily store and retrieve content, as these days Single Page Applications and Mobile Apps are moving the business logic to the client side;
- Modern Apps want consuming a REST API and use JSON as the message format (goodbye XML and RPC);
- MongoDB is the leading NoSQL database for Web and Mobile apps; it’s lightweight, fast, schema-less and uses JSON.
- Having an out-of-the-box backend, we can better focus on what matter the most: the User Experience;
- Docker is emerging as the de facto standard to package and distribute applications.
- Setup in minutes a microservice with support for MongoDB, AWS DocumentDB and Azure Cosmos DB; available also as a Docker image
- Based on open standards, like HTTP, JSON, REST, JSON and JSON Schema
- Read JSON documents with GET requests, specifying MongoDB queries and projection options; deal with large result sets with pagination
- Create, modify and delete JSON documents with POST, PUT, PATCH and DELETE requests. Use bulk requests to deal with multiple documents in one shot
- Authentication and Authorization provided by a dedicated security microservice
- Store and serve binary data with GridFS support
- Define and execute Aggregations, supporting both map-reduce and aggregation pipelines
- Execute requests in multi-document ACID transactions
- Access real-time data changes via Websocket Change Streams
- Create dbs, collections and indexes with Data Model API
- Validate requests with JSON Schema
- Define Relationships so that documents automatically include hyperlinks to referenced data
- Forget about HTTP details with automatic support of Cross-origin resource sharing, Web Caching and HTTP ETag to avoid ghost writes