核心后端服务应用程序接口
默认后端提供多个核心服务开箱即用,包括访问配置、日志、URL 阅读器、数据库等。
所有核心服务均可通过coreServices
命名空间中的@backstage/backend-plugin-api
包装
import { coreServices } from '@backstage/backend-plugin-api';
HTTP 路由器服务
最常见的服务之一是 HTTP 路由器服务,它用于暴露 HTTP 端点供其他插件使用。
使用服务
下面的示例展示了如何为example
插头。/api/example/hello
路径
import {
coreServices,
createBackendPlugin,
} from '@backstage/backend-plugin-api';
import { Router } from 'express';
createBackendPlugin({
pluginId: 'example',
register(env) {
env.registerInit({
deps: { http: coreServices.httpRouter },
async init({ http }) {
const router = Router();
router.get('/hello', (_req, res) => {
res.status(200).json({ hello: 'world' });
});
// Registers the router at the /api/example path
http.use(router);
},
});
},
});
配置服务
您还可以通过其他配置来设置httpRouter
核心服务。
getPath
- 可用于为每个插件生成一个路径。 目前默认为/api/${pluginId}
.
您可以在调用createBackend
具体如下
import { httpRouterServiceFactory } from '@backstage/backend-app-api';
const backend = createBackend();
backend.add(
httpRouterServiceFactory({
getPath: (pluginId: string) => `/plugins/${pluginId}`,
}),
);
HTTP 根路由器
HTTP 根路由器是一项允许在后端服务根节点上注册路由的服务。 这对于健康检查或其他需要在后端服务根节点上公开的路由非常有用。 它被用作支持后端httpRouter
大多数情况下,您不需要直接使用该服务,而是使用httpRouter