“零” API 调用
在 Midway Hooks 中,你在前端可以直接导入服务端函数并进行调用。这意味着你再也不用拼接 API URL,在前端手动发起请求并管理状态等。
我们打造了“零” API 调用功能,你只需要关注于接口的调用,而非 HTTP 的细节。
创建接口与调用
在 Midway Hooks 中,我们约定接口是在 lambda
文件夹下 任意 .ts
文件中导出的异步函数。
Get
导出的函数中,如果不带参数则为 Get
接口。
/apis/lambda/index.ts
export async function foo () {
return 'foo'
}
前端调用示例(src/app.tsx)
import { foo } from './apis/lambda'
const response = await foo()
console.log(response) // foo
Post
函数有参数则为 Post
接口。
/apis/lambda/index.ts
export async function bar (name: string) {
return `hello ${name}`
}
前端调用示例(src/app.tsx)
import { bar } from './apis/lambda'
const response = await bar('张三')
console.log(response) // hello 张三
Put/Delete
Midway Hooks 的接口信息与前端调用 SDK 均为自动生成,因此不支持 Put/Delete
调用。
规则
Midway Hooks 的接口,必须是在模块顶层直接导出的函数。
例子
export async function demo () {}
export const demo = async function () {}
export default async function demo () {}
不支持的导出方式
function demo () {}
// 不支持嵌套
export const exportFunc = {
demo
}
// 不支持再次导出
export {
demo
}
export default demo