digger-server
Warehouse routing for digger-client requests.
install
$ npm install digger-server
usage
Make a digger-level supplier and mount it.
var level = ;var diggerserver = var diggerlevel = // create a new leveldb - this can also be a sub-levelvar leveldb = // create a level digger suppliervar supplier = // create a digger server to mount our level suppliervar digger = // mount the level supplier onto the serverdigger // access controldigger // create a HTTP server to host itvar server = http server
notes
The digger server accepts HTTP requests that have been converted to JSON objects.
A digger req
is a read-stream in object mode with the following properties:
method:'get' headers: 'x-digger-selector':'folder.red' url:'/apples'
raw requests
You can convert raw HTTP requests using digger-http.
endpoints
Here are the notable endpoints:
- POST /digger/ship - callback based contracts
- POST /digger/stream - stream based contracts
- POST /digger/select - selector resolving
-
- /* - warehouse
The first 3 are used for contract resolving - a contract is a complicated multi-step selector / append / save / delete request.
ship
The ship endpoint accepts a contract as its POST data and expects the body of each contract to be present.
stream
The stream endpoint accepts a contract in its x-digger-contract header and will stream the requests input to that contract.
select
This creates selector streams for each of the selector stages and pipes them accordingly.
The input is not JSON packets but context paths.
warehouse
This is the REST controller back to the storage engine - you can call standard HTTP on this (for example to load a single container just GET its url)
licence
MIT