/next-http-proxy-middleware

HTTP Proxy middleware available in API Middleware provided by Next.js.

Primary LanguageTypeScript

Next.js HTTP Proxy Middleware

All Contributors

HTTP Proxy middleware available in API Middleware provided by Next.js.

Installation

The easiest way to install next-http-proxy-middleware is with npm.

npm install next-http-proxy-middleware

Alternately, download the source.

git clone https://github.com/stegano/next-http-proxy-middleware.git

Features

This middleware is implemented using the http-proxy library. You can use the existing options provided by http-proxy. And you can rewrite the api path using pathRewrite, an additional option provided by this middleware.

pathRewrite option

  • Replaces URL information matching the pattern with another string.
    • Priority is determined in the order entered in the array.
    • If the request URL matches the pattern pathRewrite.patternStr replace the URL string with the value pathRewrite.replaceStr.

Example

// pages/[...all].ts
...
export default (req: NextApiRequest, res: NextApiResponse) => (
  isDevelopment
    ? httpProxyMiddleware(req, res, {
      // You can use the `http-proxy` option
      target: 'https://www.example.com',
      // In addition, you can use the `pathRewrite` option provided by `next-http-proxy-middleware`
      pathRewrite: [{
        patternStr: '^/api/new',
        replaceStr: '/v2'
      }, {
        patternStr: '^/api',
        replaceStr: ''
      }],
    })
    : res.status(404).send(null)
);

Using multipart/form-data

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Denny Lim

🐛 💻

Kristian Tryggestad

🐛 💻

Gunnlaugur Thor Briem

💻 🤔

Otto von Wesendonk

🛡️

Daniel Silva

🤔

Yann Pringault

💻

Lorenzo

📖

Timon Grassl

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!