Dummy HTTP server fully compatible with the Resilient specification discovery protocol.
It provides a simple CRUD-like HTTP API to publish and store service servers URLs, with multiple application version based on semantic versioning. 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. For production environments, consider using Consul.
Additionally it implements full CORS support for direct browser consumption
Download the executable server as standalone binary for your target OS
Then simply run it from your prefered shell
$ chmod +x resilient-server-0.1.1-linux-x64.nar
$ ./resilient-server-0.1.1-linux-x64.nar
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
Get a list of servers for the given application service, optionally specifiying the app semantic version
curl -i http://localhost:8080/my-app-api?version=1.0.0
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 the complete list of registered apps and servers URIs
curl -i http://localhost:8080/all
Valid response
HTTP/1.1 200 OK
Content-Type: application/json
Server: resilient-server 0.1.0
[
{
"name": "app",
"versions": {
"version": "1.0.0",
"updated": 1415144314038,
"servers": [
"http://api2.server.me",
"http://api2.server.me",
"http://api3.server.me"
]
}
}
]
Missing app name
HTTP/1.1 404 Not Found
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
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
Valid response
HTTP/1.1 204 No Content
Invalid response
HTTP/1.1 400 Bad Request
Removes the servers of a given app from the registry, optionally specifiying the app semantic version
curl -i -H "Accept: application/json" \
-H "API-Token: awesome" \
-H "Version: 1.0.0" \
-X DELETE \
http://localhost:8080/my-app-api
Valid response
HTTP/1.1 204 No Content
Invalid response
HTTP/1.1 404 Not Found
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
MIT - Tomas Aparicio