Skip to main content

配置实用程序应用程序接口

**注意:新的前台系统处于alpha阶段,只有少数插件支持。

实用程序编程接口(Utility API)是一种扩展,因此可以通过可配置性以及其他扩展附加的输入进行选择性修改。 本节将介绍作为此类实用程序编程接口(Utility API)的消费者如何利用这些扩展。

配置

要配置实用程序 API 扩展,首先需要知道它的 ID。 该 ID 由 API ref ID 生成;查看命名模式文档了解详情。

我们的示例工作应用程序接口来自创建部分将具有 IDapi:plugin.example.work您可以在app.extensions部分。

in e.g. app-config.yaml or app-config.production.yaml
app:
extensions:
- api:plugin.example.work:
config:
goSlow: false
- # ... other extensions

值得注意的是extensions是一个列表(注意-),以及api:plugin.example.work条目是一个对象,其config如果这两项不正确,应用程序可能无法正常启动。

扩展配置模式会告诉你它支持哪些参数。 在这里,我们覆盖了goSlow扩展配置值,取代默认值。

为输入添加扩展名

与其他扩展类型一样,您可以通过声明attachTo部分,以指向实用程序应用编程接口 ID 和输入名称。

写得好的支持输入的扩展通常都有扩展创建函数,可以帮助您创建此类附件。 这些函数通常会设置attachTo正确的部分,这样您就不必自己去琢磨了。

取代实用程序应用程序实施

与其他扩展类型一样,您可以用自己的自定义实现替换实用程序应用程序接口,使用扩展覆盖.

in your app
import { createExtensionOverrides } from '@backstage/frontend-plugin-api';

class CustomWorkImpl implements WorkApi {
/* ... */
}

const myOverrides = createExtensionOverrides({
extensions: [
createApiExtension({
api: workApiRef,
factory: () =>
createApiFactory({
api: workApiRef,
factory: () => new CustomWorkImpl(),
}),
}),
],
});

// Remember to pass the overrides to your createApp
export default createApp({
features: [
// ... other features
myOverrides,
],
});

在本例中,覆盖扩展保持最小,但与其他扩展一样,它也可以有deps查看创建部分了解更多详情。

在创建替代扩展时,一般情况下,您可能希望模仿其扩展配置模式或输入形状(如适用)。 这将使其更容易插入应用程序,因为它将以与原始扩展相同的方式响应可扩展性。