Try RESTHeart Online

A Simple Web Application

This is a very simple Web Application hosted at StackBlitz. It shows a table of the message documents stored in a MongoDB collection and provides a simple form to create a new message document.

Click on Editor button and open the code of service.ts. You’ll see how is easy interacting with the RESTHeart API!

Try the API online

You can use the online demo service so you can play with API without the need to install MongoDB and RESTHeart.

The online demo API exposes one single collection at https://beta.mrest.io/demo/messages without requiring authentication.

mrest.io is the managed service for RESTHeart, currently on beta. It requires an api key, passed via request header key:demo

Insert or update the document with _id docid
PUT /db/coll/docid

$ curl -i -H "key:demo" -H "Content-Type:application/json" -X PUT https://beta.mrest.io/demo/messages/docid -d '{"from":"you", "message":"RESTHeart rocks!!" }'

HTTP/1.1 201 Created
Open on rest ninja

Get the created document

$ curl -i -H "key:demo" https://beta.mrest.io/demo/messages/docid

{
	"_id": "docid",
	"from": "you",
	"message": "RESTHeart rocks"
}
Open on rest ninja

Create a second document with POST /db/coll

If the _id is not specified in the request body, it will be autogenerated as a new ObjectId. The Location response header specifies the URL of the new document.

$ curl -i -H "key:demo" -H "Content-Type:application/json" -X POST https://beta.mrest.io/demo/messages -d '{"from":"you", "message": "MongoDB rocks as well!"}'

HTTP/1.1 201 Created
Location: https://beta.mrest.io/demo/messages/563a40d6e4b0ef984cae182b
...
Open on rest ninja

Update the first document with PATCH /db/coll/docid

This request uses the dot notation and the $currentDate operator. These are available in all write requests!

$ curl -i -H "key:demo" -H "Content-Type:application/json" -X PATCH https://beta.mrest.io/demo/messages/docid -d '{"$currentDate": { "header.timestamp": true}}'

HTTP/1.1 200 OK
...
Open on rest ninja

Get the updated document again.

The returned representation contains all the document properties plus few more. The _etag is updated automatically by RESTHeart for Web caching and ghost writes management.

$ curl -i -H "key:demo" https://beta.mrest.io/demo/messages/docid

{
	"_id": "docid",
	"from": "you",
	"message": "RESTHeart rocks!!",
	"header": {
		"timestamp": {
			"$date": 1475598488601
		}
	}
}
Open on rest ninja

Find documents via query.

The filter query parameter allows to specify any MongoDB query.

This instance of RESTHeart is configured to always add the np query parameter to the request; it gets rid of the collection properties and returns just an array of documents.

$ curl -H "key:demo" -G --data-urlencode "filter={'from':'you'}" https://beta.mrest.io/demo/messages?pagesize=2

[   {
		"_id": "docid",
		"from": "you",
		"message": "RESTHeart rocks!",
		"header": {
			"timestamp": {
				"$date": 1475598488601
			}
		}
	}, {
		"_id": {
			"$oid": "563a40d6e4b0ef984cae182b"
		},
		"from": "you",
		"message": "MongoDB rocks as well!"
	}
]
Open on rest ninja