Navigation

HTTP Interface

REST Interfaces

Eve (Python)

Eve is an open source Python REST API framework designed for human beings. It allows to effortlessly build and deploy highly customizable, fully featured RESTful Web Services powered by MongoDB.

The codebase is thoroughly tested under Python 2.6, 2.7, 3.3, 3.4 and PyPy.

All you need to bring your REST Web Service online is a MongoDB database, a configuration file and a launch script. Overall, you will find that configuring and fine-tuning your API is a very simple process.

  • Emphasis on REST
  • Full range of CRUD operations
  • Customizable resource endpoints
  • Customizable, multiple item endpoints
  • Filtering and Sorting
  • Pagination
  • HATEOAS
  • JSON and XML Rendering
  • Conditional Requests
  • Data Integrity and Concurrency Control
  • Bulk Inserts
  • Data Validation
  • Extensible Data Validation
  • Resource-level Cache Control
  • API Versioning
  • Document Versioning
  • Authentication
  • … and (a lot) more.

RESTHeart (Java)

RESTHeart REST API server for MongoDB, built on top of Undertow non-blocking HTTP server. License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3.

> RESTHeart leverages MongoDB’s document-oriented nature, creating an automatic mapping between MongoDB’s internal storage of data and a graph of externally accessible HTTP resources, implementing a model of interaction compliant with an HATEOAS (Hypermedia as the Engine of Application State) representation, where the state of a client process is entirely driven by HTTP verbs like GET, POST, PUT, PATCH, DELETE, etc.

  • Lightweight and fast server, ready to use without any coding;
  • Built on standards, like HTTP, JSON, RESTful, HAL, JSON Schema;
  • Pluggable Authentication and Authorization, with ready to use Identity Manager and role-based Access Manager;
  • Data operations API, to create, read, update, delete and query documents;
  • Support for “dot notation” and update operators on every write verb (new in 2.0);
  • Bulk operations, with POST, PATCH and DELETE of multiple documents with one single request (new in 2.0);
  • GridFS support, for large binary data;
  • Aggregation Operations, for both map-reduce and aggregation pipelines (improved in 2.0);
  • Data model operations API, to create dbs, collections and indexes via pure RESTful calls;
  • Strict data validation with JSON Schema (new in 2.0);
  • WebHooks to call other web resources after request completes (new in 2.0);
  • Relationship can be defined so that documents automatically include the hyperlinks to referenced data;
  • Transformation and Checks logic can be easily applied to requests;
  • Serve Static Resources (such as HTML, CSS, images and JavaScript) and custom Application Logic;
  • Supports optimized browser web caching and avoids ghost writes with standard ETag (improved in 2.0);
  • Cross-origin resource sharing (CORS);
  • Embedded HAL browser to easily navigate your data.
  • Available also as a Docker image <https://hub.docker.com/r/softinstigate/restheart/>
  • Ideal as an AngularJS (or any other MVC JavaScript framework) back-end.

DrowsyDromedary (Ruby)

DrowsyDromedary is a REST layer for MongoDB based on Ruby.

Crest (Node.jS)

Crest is a REST API Server for MongoDB built in node.js using the MongoDB Node Native driver.

AMID

AMID is a REST interface for MongoDB. Written in Node.js, supports multi-threading and a modular architecture to perform custom search operation. AMID also provides an optional extjs GUI for queries: AMIDGUI.

Kule

Kule is a customizable REST interface for MongoDB based on Python.

DreamFactory

DreamFactory is an open source backend with a REST API for MongoDB. DreamFactory on GitHub.

HTTP Interfaces

Sleepy Mongoose (Python)

Sleepy Mongoose is a full featured HTTP interface for MongoDB.

See Also