Simple proof of concept for something specifically generic.. :)
go get -u -v github.com/zensword/crudmachine
Start the demo by running crudmachine (port 8888 by default) or crudmachine -p 1234 if you prefer a specific port.
Now you can play around with some generic crud stuff. See examples below.
The file collections.conf contains the names for all collections that will be created on startup.
curl -X POST -H 'Content-Type: application/json' -d "{\"name\": \"book1\", \"isbn\": \"0815-1\"}" http://localhost:8888/db/books
curl -X POST -H 'Content-Type: application/json' -d "{\"name\": \"book2\", \"isbn\": \"0815-2\"}" http://localhost:8888/db/books
curl -X POST -H 'Content-Type: application/json' -d "{\"name\": \"book3\", \"isbn\": \"0815-3\"}" http://localhost:8888/db/books
curl -X POST -H 'Content-Type: application/json' -d "{\"name\": \"book4\", \"isbn\": \"0815-4\"}" http://localhost:8888/db/books
curl -X POST -H 'Content-Type: application/json' -d "{\"name\": \"book5\", \"isbn\": \"0815-5\"}" http://localhost:8888/db/books
curl -X GET http://localhost:8888/db/books
Note that you can omit the id in the object itself. It will be reinserted.
curl -X PUT -H 'Content-Type: application/json' -d "{\"name\": \"updatedBook\", \"isbn\": \"0815-5\"}" http://localhost:8888/db/books/23453344545
curl -X DELETE http://localhost:8888/db/books/23453344545