fastify-http-proxy icon indicating copy to clipboard operation
fastify-http-proxy copied to clipboard

Match by suffix (instead of prefix)

Open peterbe opened this issue 7 months ago • 2 comments

Prerequisites

  • [x] I have written a descriptive issue title
  • [x] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal

In porting an Express + http-proxy-middleware app, there's something I can't do; match by suffix rather than prefix. My Express code looks like this:

app.use("*/ping", backendProxy);

That means that any URL like /foo/ping or /bla/ble/blu/ping would be proxied away from this to that backend it was configured to.

This would be nice to be able to do with fastify-http-proxy. (Perhaps it's possible with some hacks, but I can't figure it out)

Motivation

Another use-case other than the one above is if you wanted to match by file extension. E.g.

server.register(require('@fastify/http-proxy'), {
  upstream: 'http://my-api.example.com',
  pattern: '*.webp'
});

Example

server.register(require('@fastify/http-proxy'), {
  upstream: 'http://my-api.example.com',
  pattern: '*/info'
});

or

server.register(require('@fastify/http-proxy'), {
  upstream: 'http://my-api.example.com',
  suffix: '/info'
});

it would match http://localhost:3000/anything/info or http://localhost:3000/a/b/c/d/info

peterbe avatar Jul 10 '24 18:07 peterbe