hijacker

    0.2.3 • Public • Published

    Hijacker

    Build Status Coverage Status

    Hijacker can be used as an API relay to assist with front end development. It can intercept requests and responses between the client and the API server.

    NOTE: Hijacker is in early development and subject may break config files from update to update.

    NPM

    Hijacker can be found on npm here

    Getting Started

    Hijacker is designed to be used alongside of an existing API so setting up a project is as simple as letting Hijacker know your API url and a list of rules you would like to intercept and then pointing your client to the Hijacker server instead of your API server. If no rule is provided for a given route, it will return the response from the API server, so Hijacker can be used with out any rules, and your application should function as if Hijacker is not there.

    Installing

    To install Hijacker, you can either install it to a specific project:

    npm install hijacker
    

    Or you can install it globally to allow use of the hijacker command in your terminal:

    npm install -g hijacker
    

    Setup

    To set up a project for use with Hijacker a hijacker.conf.json file should be added to your project root. The file should be structured similar to below:

    {
      "base_url": "http://api.base.com", // (REQUIRED) Base URL for API to intercept (without trailing backslash) requests for
      "port": 3000,  // Port to run the hijacker server on (Default: 3005)
      "rules": []    // List of rule objects for intercepting requests (Default: [])
    }
    

    Example:

    Here is an basic config file that defines a rule for the route /cars. Every other route will make a request to https://jsonplaceholder.typicode.com[route] and return the given response.

    {
      "base_url": "https://jsonplaceholder.typicode.com",
      "port": 3000,
      "rules": [
        {
          "path": "/cars",
          "skipApi": true,
          "body": {
            "Hello": "World"
          }
        }
      ]
    }
    

    Running

    Once you have have your config file set up in your project you can start the Hijacker server in the following ways:

    Global Install

    If you installed Hijacker globally, to start the server, all you need to do is run the following command in a directory that contains a configuration file:

    hijacker
    

    Local Install

    If you installed Hijacker to a specific npm project you can run the following command in a directory with a configuration file:

    ./node_modules/.bin/hijacker
    

    package.json Setup

    In either installation case, you can add a command similar to the following to the scripts section of the package.json file of a project.

    "scripts": {
      "hijacker": "hijacker"
    }
    

    And then you can run the following command in your node project to start the server:

    npm run hijacker
    

    Route Rule Object

    Below are parameters that can be used in a route rule. Optional parameters will default to values from the original request/response.

    Parameter Default Description
    body (optional) Body object to send back to client in response
    disabled false Flag to allow disabling a rule without deleting from list
    interceptRequest false Ability to intercept request from client before sent to api
    interceptResponse false Ability to intercept response from api before sent to client
    keepHeaders [] List of headers to forward to api server
    path (required) Apply rule to requests to paths that match
    skipApi false Skip call to api server and send predefined response
    method All HTTP method to apply the rule to
    statusCode (optional) Status code to send back to the client

    Future Work

    Hijacker is currently under development with the following features planned:

    • Dashboard to configure Hijacker rules
    • Request/Response Breakpoints (Editing requests before they are sent to the API server and responses before they are sent back to the client) (Implemented but needs dashboard)
    • More advanced route rules
      • Match paths with regex
      • Modify responses/requests w/ functions rather than replacing with object
    • Support for multiple API's for a project
    • Better CLI
    • Allow use without an existing API server

    Keywords

    none

    Install

    npm i hijacker

    Homepage

    hijacker.io

    DownloadsWeekly Downloads

    25

    Version

    0.2.3

    License

    MIT

    Last publish

    Collaborators

    • travis-w