fastman / drakov

Mock Server that implements the API Blueprint specification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Drakov API Blueprint Mock Server

Gitter

Build Status

Drakov

Mock server that implements the API Blueprint specification:

Note on Dependencies

You will need to have g++ and make installed on your system so npm install can compile the Snow Crash library.

Installation instructions

npm install -g drakov

Running

drakov -f <glob expression to your md files> -s <comma delimited list of static file paths> -p <server port>

Argument Notes:

  • Glob expression is required
  • If a list of static file paths are provided, then Drakov will proxy the static files
  • Server port is optional and defaults to 3000
  • CORS headers are sent by default, you need to use the --disableCORS switch/property

Examples

With only a glob expression

drakov -f "../com/foo/contracts/*.md"

With glob expression and single static path

drakov -f "../com/foo/contracts/*.md" -s "../path/to/static/files"

With glob expression and multiple static paths (must be comma delimited with no spaces)

drakov -f "../com/foo/contracts/*.md" -s "../path/to/static/files" -s "../second/path/to/static/files"

With globa expression and static path that has a specific mount point

drakov -f "../com/foo/contracts/*.md" -s "../path/to/static/files=/www/path"

With globa expression and static path that has a specific mount point with different path mount delimiter

drakov -f "../com/foo/contracts/*.md" -s "../path/to/static/files:/www/path" -d ":"

With glob expression and specified server port

drakov -f "../com/foo/contracts/*.md" -p 4007

CORS Header

By default a CORS header is sent, you can disable it with the --disableCORS switch.

SSL Support

To enable SSL you must provide both key and certificate. Use parameters --sslKeyFile and --sslCrtFile to specify the path to your key and certificate files. Once SSL is enabled Drakov will only respond to HTTPS requests.

drakov -f "../com/foo/contracts/*.md" --sslKeyFile="./ssl/server.key" --sslCrtFile="./ssl/server.crt"

Stealth Mode

In some cases you may wish to suppress the logging output of Drakov. To do so, run is with the --stealthmode options.

drakov -f "../com/foo/contracts/*.md" --stealthmode

Using as a Node.js module

var drakov = require('drakov');

var argv = {
    sourceFiles: 'path/to/files/**.md',
    serverPort: 3000,
    staticPaths: [
        '/path/to/static/files',
        '/another/path/to/static/files',
        '/path/to/more/files=/mount/it/here'
    ],
    stealthmode: true,
    disableCORS: true
};

drakov.run(argv);

FAQ

Q: If I have multiple requests/responses on the same API endpoint, which response will I get?

A: Drakov will respond with the first response matching the request body for that API endpoint.

Q: If I have multiple responses on a single request, which response will I get?

A: Drakov will respond with the first response.

Q: Drakov is too loud (outputting too much logging), can I turn off request and API responses?

A: You can suppress all but the startup output of Drakov with --stealthmode.

CONTRIBUTORS

Yakov Khalinsky ykhalinsky@aconex.com

Marcelo Garcia de Oliveira moliveira@aconex.com

Huge thanks to Eva Mansk for the funky logo!

About

Mock Server that implements the API Blueprint specification

License:MIT License


Languages

Language:JavaScript 100.0%