https://github.com/atinux/api-as-a-service
[Unmaintained] Don't waste your time writing backend for your web application.
https://github.com/atinux/api-as-a-service
Last synced: 10 months ago
JSON representation
[Unmaintained] Don't waste your time writing backend for your web application.
- Host: GitHub
- URL: https://github.com/atinux/api-as-a-service
- Owner: atinux
- Created: 2012-07-10T09:35:47.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2015-07-03T08:31:55.000Z (over 10 years ago)
- Last Synced: 2025-02-28T23:25:28.591Z (11 months ago)
- Language: JavaScript
- Homepage:
- Size: 128 KB
- Stars: 40
- Watchers: 5
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This repository is depreacted, use a solution like http://treeline.io and http://sailsjs.org/.
API AS A SERVICE
----------------
DO you want to write a web application in seconds?
**Api-as-a-service is the solution!**
Installation
------------
git clone git://github.com/Atinux/api-as-a-service.git
cd api-as-a-service/
npm install -d
Setup
------
node app.js
The server will listen on the 4000 port. So check http://localhost:4000.
Documentation
-------------
Here the sample API :
**POST - /api/:entity**
Create a new document for this entity. If the entity doesn't exist, it will be created. The field *id* is generated and added to the document.
**GET /api/:entity**
- Search documents for this entity
- Some params to search :
- **q** to search in all fields (*example:* /api/products?q=iphone to find all documents wich contain the term "iphone")
- **{fieldName}** to search with specified field name (*example:* /api/products?name=test to find all docs wich contain "test" in its "name" field)
- **fields** to get back only specified fields (*example:* /api/products?fields=name,price.retail will send back the documents with only the key name and price (with sub key retail)), nested keys must be separated by '.'
- **limit** to limit the number of result (*example:* /api/products?limit=20)
- **offset** specify the first occurence to send back in the results (*example:* /api/products?offset=5)
**GET /api/:entity/:id**
Get the document with id *:id*
**PUT /api/:entity/:id**
Update document with id *:id*
**DELETE /api/:entity/:id**
Delete document with id *:id*
**DELETE /api/:entity**
Ask a token to delete entity *:entity* and send back an url to confirm the delete of this entity
**DELETE /api/:entity/:token**
Delete the entity *:entity*
Informations
------------
The server will create a static server on the public/ folder.
You can easily develop a web application which can use the API and put it in public/ folder!
The server will use a static file to save all the documents and entities (*data.json*).
Remember, **api-as-a-service** is meant to help you create a web application easily thinking about writting any backend code.
If you want to put your application into production, I would recommend you write your own backend.
Have fun!
Thanks you to Alexandre Fournel to inspire me.
Roadmap
-------
- Add TDD tests with Mocha
- Add sortBy and rangeBy fields
- Add Socket.IO support for realtime web app