Documentation

Introduction

There are some features every developer in the world always need to implement:

  1. Data persistence.
  2. Authentication and Authorization.
  3. API.

RESTHeart provides out-of-the-box:

  1. Data persistence via MongoDB.
  2. Secure Identity and Access Management.
  3. REST API with JSON messages.

RESTHeart is a REST API Microservice for MongoDB which provides server-side Data, Identity and Access Management for Web and Mobile applications.

RESTHeart is:

  1. A Stateless Microservice.
  2. Designed to be distributed as a Docker container.
  3. Easily deployable both on cloud and on-premises.

With RESTHeart teams can focus on building Angular, React, Vue, iOS or Android applications, because most of the server-side logic necessary to manage database operations, authentication / authorization and related APIs is automatically handled, without the need to write any server-side code except for the UX/UI.

For example, to insert data into MongoDB a developer has to just create client-side JSON documents and then execute POST operations via HTTP to RESTHeart: no more need to deal with complicated server-side coding and database drivers in Java, JavaScript, PHP, Ruby, Python, etc.

For these reasons, RESTHeart is widely used by freelancers, Web agencies and System Integrators with deadlines, because it allows them to focus on the most important and creative part of their work: the User Experience.

For more ideas have a look at the list of features and the collection of common use cases.

RESTHeart is dual licensed under the open source GNU AGPL v3.0 and the business friendly RESTHeart Commercial License.

RESTHeart is written in Java and is build on top of the Undertow high performance, non-blocking HTTP server.

The founding ideas around RESTHeart are:

  1. The key architectural trends in software development are microservices architecture and NoSQL databases
  2. 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;
  3. Modern Apps want consuming a REST API and use JSON as the message format (goodbye XML and RPC);
  4. MongoDB is the leading NoSQL database for Web and Mobile apps; it’s lightweight, fast, schema-less and uses JSON.
  5. Having an out-of-the-box backend, we can better focus on what matter the most: the User Experience;
  6. Docker is emerging as the de facto standard to package and distribute applications.

Features

  • 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
  • Extend RESTHeart via Plugins: transform, check requests and responses, keep data secure with authenticators and authorizers, executes WebHooks after a request completes, implement Web Services in minutes, serve Static Resources (such as HTML, CSS, images and JavaScript)
  • 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