Skip to content

Match by suffix (instead of prefix) #357

@peterbe

Description

@peterbe

Prerequisites

  • I have written a descriptive issue title
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions