跳到主要内容

自定义UI Resolver

Resolver可以为你的自定义UI的应用定义后端函数(运行在runtime中的函数),自定义UI的前端可以通过 invoke api可以调用resolver定义的函数。

使用

配置manifest.yml

modules:
workspacePage:
- key: workspace-page
title: workspace-title
resource: main
loadType: Micro
resolver:
function: resolver-function
function:
- key: resolver-function
handler: index.handler
resources:
- key: main
path: dist

resolver 中的 function 指向 function 模块中的key

警告

每一个模块只能对应一个resolver function,但是一个resolver function可以定义多个method

resolver方法的定义

import { Resolver } from '@giteeteam/apps-api';

const resolver = new Resolver();

resolver.define("method-key", ({ payload }) => {
// payload是下方invoke传过来的参数
const { example } = payload
console.log(example)

let result;
// your code
return result;
})

resolver.define("method-key-2", ({ payload }) => {
// payload是下方invoke传过来的参数
const { example } = payload
console.log(example)

let result;
// your code
return result;
})

export const handler = resolver.getDefinitions();

使用invoke api调用resolver的方法

具体可以参考 invoke

在Custom UI 的前端代码中引入@giteeteam/plugin-sdk

import { invoke } from '@giteeteam/plugin-sdk';

const Demo = () => {
useEffect(() => {
const payload = {
example: 'hello'
}
const result = await invoke("method-key", payload); // payload 是执行参数
console.log(result) // 返回的数据
},[])

return <div></div>
}