Esapiserver

A very lightweight Sinatra/MongoDB CRUD API server to be used for EmberJS development and testing. By using MongoDB as the database server, all the tables are created on the fly when POST requests are made, in other words, no tables needs to be created beforehand.

I started out using the fixture and local storage adapter in Ember, but experienced that the limitations that these adapters have, would turn out be a pain in the butt later when it was time to release my app - I wanted to make sure that what I test, was consistant with what I would release, hence the esapiserver.

Installation

Run:

Install the gem
    $ gem install esapiserver

Start up your mongoDB server   
    $ mongoD

Start the Ember Sinatra/MongoDB API server
    $ easapiserver

Usage

Database related requests:

Load a db
    http://localhost:4567/select_db/ember_test_db

Reset a db - this will drop and reload the DB
    http://localhost:4567/reset_db/ember_test_db

List the collections of the selected db
    http://localhost:4567/db_collections

POST request:

Creates a new model
    http://localhost:4567/api/:model

GET requests:

Returns a list of models
    http://localhost:4567/api/:model

Returns a list of models that matches a specific query
    http://localhost:4567/api/:model?ids[]=id1&ids[]=id2

Returns a model with a specific key/value
    http://localhost:4567/api/:model?key=value

Returns a model with a specific id
    http://localhost:4567/api/:model/:id

DELETE request:

Deletes a model with a specific id
    http://localhost:4567/api/:model/:id

PUT request:

Updates a model with a specific id
    http://localhost:4567/api/:model/:id

EmberJS

App.ApplicationAdapter = DS.RESTAdapter.extend
    namespace: 'api'
    host: 'http://127.0.0.1:4567'
    corsWithCredentials: true