backend-app-api: deprecate plugin path configuration and fix /api/* 404

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2024-04-06 15:30:01 +02:00
parent 31ee337a50
commit 10327fb855
6 changed files with 39 additions and 17 deletions
@@ -39,20 +39,4 @@ createBackendPlugin({
## Configuring the service
There's additional configuration that you can optionally pass to setup the `httpRouter` core service.
- `getPath` - Can be used to generate a path for each plugin. Currently defaults to `/api/${pluginId}`
You can configure these additional options by adding an override for the core service when calling `createBackend` like follows:
```ts
import { httpRouterServiceFactory } from '@backstage/backend-app-api';
const backend = createBackend();
backend.add(
httpRouterServiceFactory({
getPath: (pluginId: string) => `/plugins/${pluginId}`,
}),
);
```
This service does not have any configuration options.
@@ -7,6 +7,8 @@ description: Documentation for the Root Http Router service
The root HTTP router is a service that allows you to register routes on the root of the backend service. This is useful for things like health checks, or other routes that you want to expose on the root of the backend service. It is used as the base router that backs the `httpRouter` service. Most likely you won't need to use this service directly, but rather use the `httpRouter` service.
The `/api/:pluginId/` path prefix is reserved for use by plugins to register their own routes via the [HttpRouter](./http-router.md) service.
## Using the service
The following example shows how to get the root HTTP router service in your `example` backend plugin to register a health check route.
@@ -74,3 +76,5 @@ backend.add(
}),
);
```
Note that requests towards `/api/*` will always fall through the `routes` if there is no matching plugin route, and never be caught by the configured `indexPath`.