stegano / next-http-proxy-middleware

HTTP Proxy middleware available in API Middleware provided by Next.js.
230 stars 18 forks source link

Unable to use path rewrite to external endpoint. #29

Open FDiskas opened 3 years ago

FDiskas commented 3 years ago

Unable to use path rewrite to external endpoint. using vanila http-proxy-middleware it is possible using router https://github.com/chimurai/http-proxy-middleware/blob/c935888ea7135365bea3c4c81e4ffe48f359a670/examples/response-interceptor/index.js#L39

Pseudo code

// src/pages/api/demo.ts
export default (req: NextApiRequest, res: NextApiResponse) =>
    httpProxyMiddleware(req, res, {
        timeout: 3000,
        target: 'http://localhost:8080',
        router: {
            '/api/demo': 'https://google.com',
        },
        pathRewrite: {
            '/api/demo': '',
        },
    }).catch(async (error) => {
        res.end(error.message);
        console.log(error);
    });

As a workaround i create multiple files with different target option

stegano commented 3 years ago

Hi @FDiskas

Unfortunately, there are too many features that overlap with httpProxyMiddleware, so I think it would be better to provide guidance on how to use httpProxyMiddleware rather than adding new features anymore. (httpProxyMiddleware provides more features)

As an alternative, try httpProxyMiddleware and the source code below.

import {createProxyMiddleware} from'http-proxy-middleware';

export default createProxyMiddleware({
         timeout: 3000,
         target:'http://localhost:8080',
         router: {
             '/api/demo':'https://google.com',
         },
         pathRewrite: {
             '/api/demo':'',
         },
     });

Thanks 😀