Permalink
Fetching contributors…
Cannot retrieve contributors at this time
134 lines (101 sloc) 4.7 KB
.. _http-interface:
==============
HTTP Interface
==============
.. default-domain:: mongodb
.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: twocols
.. _rest-interface:
REST Interfaces
---------------
Eve (Python)
~~~~~~~~~~~~
`Eve <http://python-eve.org>`_ 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 <http://www.restheart.org>`_ REST API server for
MongoDB, built on top of `Undertow <http://undertow.io>`_ 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 <https://github.com/zuk/DrowsyDromedary>`_
is a REST layer for MongoDB based on Ruby.
Crest (Node.jS)
~~~~~~~~~~~~~~~~~~~~~~
`Crest <https://github.com/cordazar/crest>`_ is a REST API Server for
MongoDB built in node.js using the
`MongoDB Node Native driver
<https://github.com/christkv/node-mongodb-native>`_.
AMID
~~~~
`AMID <https://github.com/mariano-fiorentino/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
<https://github.com/mariano-fiorentino/amidGUI>`_.
Kule
~~~~
`Kule <https://github.com/fatiherikli/kule>`_ is a customizable REST
interface for MongoDB based on Python.
DreamFactory
~~~~~~~~~~~~
`DreamFactory <http://www.dreamfactory.com>`_ is an open source backend
with a REST API for MongoDB. `DreamFactory on GitHub <https://github.com/dreamfactorysoftware>`_.
HTTP Interfaces
---------------
Sleepy Mongoose (Python)
~~~~~~~~~~~~~~~~~~~~~~~~
`Sleepy Mongoose <http://www.kchodorow.com/blog/2010/02/22/sleepy-mongoose-a-mongodb-rest-interface/>`_
is a full featured HTTP interface for MongoDB.
See Also
--------
- :manual:`Monitoring Database Systems </administration/monitoring/>`
- |mms-home| for seamless automation, backup, and monitoring.
.. include:: /includes/replacement-mms.rst