redirect-rest

2.2.0 • Public • Published

redirect-rest

Redirect REST requests to other servers, so you can develop your Javascript app without having to launch the backend server on your machine or worry about CORS.

Getting Started

  • Install the module with: npm install redirect-rest
  • Go to your Javascript app folder
  • Create a .redirect-rest.json file (read more)
  • Launch the server with redirectrest
  • Open http://localhost:4242/ and enjoy your redirects!

Config options

To configure the redirections and everything else for redirectrest, create a .redirect-rest.json file on the root folder of your application.

Inside this JSON file you can have this options:

  • public_path: Path of the assets that will be published on the HTTP server launched by redirectrest. Defaults to: ./

  • html_extensions: Array of file extensions which will be treated as text/html (just in case you are required to have an HTML file with backend extension: PHP, JSP…). Defaults to: ["jsp", "php", "html"]

  • redirection_rules: array that contains the redirection rules to redirect to one or many remote servers. Required. Each item in the array is formed by: - path: path used in the request in order to redirect to the remote server. Required. - remote_url: Base URL of the remote server, where the local requests will be redirected. Required. - proxy: Proxy to be used to make remote server requests. Optional.

  • port: Local server port

  • livereload: Make use of LiveReload to refresh the browser on local changes

  • livereloadPort: Port to be used with LiveReload

For example: Imagine you have a JS app and two REST API services on http://example.com/api/ and http://anotherexample.com/api/. Your .redirect-rest.json file would be:

{
  "html_extensions" : ["aspx", "php", "jsp"],
  "public_path" : "./",
  "redirection_rules" : [
               {
                 "path": "/example",
                 "remote_url": "http://example.com/api"
               },
               {
                 "path": "/anotherExample",
                 "remote_url": "http://anotherExample.com/api"
               }
               ]
}

This way you'll have your JS app published under http://localhost:4242/, and requests will be redirected as follows:

  • http://localhost:4242/example/users redirects to: http://example.com/api/users

  • http://localhost:4242/example/roles redirects to: http://example.com/api/roles

  • http://localhost:4242/exmaple/whatever redirects to: http://example.com/api/whatever

  • http://localhost:4242/anotherexample/clients redirects to: http://anotherexample.com/api/clients

  • http://localhost:4242/anoherexample/products redirects to: http://anotherexample.com/api/products

  • http://localhost:4242/anotherexample/whatever redirects to: http://anotherexample.com/api/whatever

ASP.NET, PHP and JSP files will be treated as text/html.

TO-DO

  • Add port, proxy, livereload and livereloadPort config options (v2.1.0, thanks to @howardh)
  • Remove routes. Now all requests are redirected to remote_url (v2.0.0)
  • Remove support for redirections to different remote paths (v1.0.0)
  • Support querystrings (v0.0.9)
  • Redirect local requests to different remote path (v0.0.8)
  • Implement error forwarding to local server from remote server (v0.0.7)
  • Better logging system (v0.0.5)

Acknowledgments

The original idea behind redirect-rest was by @drmillan. He was planning on doing something much more simple, and written in some archaic and obscure language such as PHP.

I couldn't allow that \_(ʘ_ʘ)_/

License

Copyright (c) 2014 Juan G. Hurtado Licensed under the MIT license.

Readme

Keywords

none

Package Sidebar

Install

npm i redirect-rest

Weekly Downloads

0

Version

2.2.0

License

none

Last publish

Collaborators

  • juanghurtado