resilient-server
v0.1.1
Published
Dummy HTTP server for register discovery services according to the Resilient discovery protocol
Downloads
5
Maintainers
Readme
resilient-server
Dummy HTTP server fully compatible with the Resilient specification discovery protocol.
The stored servers are persisted as volatile data (in-memory). After a server restart is required data re-registering
It was designed to be used for testing, demo and development proposals with resilient based applications
Additionally it implements full CORS support for direct browser consumption
Installation
You must have node.js already installed
Install the package
$ npm install -g resilient-server
Start the server
$ resilient-server -p 8080 -h 0.0.0.0 --api-key awesome
Show the help
$ resilient-server --help
HTTP API
GET /:appName
Get a list of servers for the given application service, optionally specifiying the app semantic version
Request
curl -i http://localhost:8080/my-app-api?version=1.0.0
Response
Valid response
HTTP/1.1 200 OK
Content-Type: application/json
Server: resilient-server 0.1.0
[
"http://api1.server.me",
"http://api2.server.me",
"http://api3.server.me"
]
Missing app name
HTTP/1.1 404 Not Found
GET /all
Get the complete list of registered apps and servers URIs
Request
curl -i http://localhost:8080/all
Response
Valid response
HTTP/1.1 200 OK
Content-Type: application/json
Server: resilient-server 0.1.0
[
{
"name": "app",
"updated": 1415144314038,
"servers": [
"http://api2.server.me",
"http://api2.server.me",
"http://api3.server.me"
]
}
]
Missing app name
HTTP/1.1 404 Not Found
POST|PUT /:appName
Update the servers for the given application service, optionally specifiying the app semantic version
Note: this service could require an API key token, if it's was defined via --api-token
flag
Request
curl -i -H "Accept: application/json" \
-H "API-Token: awesome" \
-H "Version: 1.0.0" \
-X POST -d '["http://newapi.server.com"]' \
http://localhost:8080/my-app-api
Response
Valid response
HTTP/1.1 204 No Content
Invalid response
HTTP/1.1 400 Bad Request
DELETE /:appName
Removes the servers of a given app from the registry, optionally specifiying the app semantic version
Request
curl -i -H "Accept: application/json" \
-H "API-Token: awesome" \
-H "Version: 1.0.0" \
-X DELETE \
http://localhost:8080/my-app-api
Response
Valid response
HTTP/1.1 204 No Content
Invalid response
HTTP/1.1 404 Not Found
Development
You must have installed node.js >= 0.10
Clone this repository
git clone https://github.com/h2non/resilient-server.git && cd resilient-server
Install runtime and developmennt dependencies
npm install
Run tests
grunt test
Run the server
./bin/resilient-server --port 8080 --debug
Show help
./bin/resilient-server --help
Run as a service (using forever)
forever -m 5 ./bin/resilient-server
License
MIT - Tomas Aparicio