“零” API 调用

在 Midway Hooks 中,你在前端可以直接导入服务端函数并进行调用。这意味着你再也不用拼接 API URL,在前端手动发起请求并管理状态等。

image.png

我们打造了“零” API 调用功能,你只需要关注于接口的调用,而非 HTTP 的细节。

创建接口与调用

在 Midway Hooks 中,我们约定接口是在 lambda 文件夹下 任意 .ts 文件中导出的异步函数。

Get

导出的函数中,如果不带参数则为 Get 接口。

/apis/lambda/index.ts

  1. export async function foo () {
  2. return 'foo'
  3. }

前端调用示例(src/app.tsx)

  1. import { foo } from './apis/lambda'
  2. const response = await foo()
  3. console.log(response) // foo

Post

函数有参数则为 Post 接口。

/apis/lambda/index.ts

  1. export async function bar (name: string) {
  2. return `hello ${name}`
  3. }

前端调用示例(src/app.tsx)

  1. import { bar } from './apis/lambda'
  2. const response = await bar('张三')
  3. console.log(response) // hello 张三

Put/Delete

Midway Hooks 的接口信息与前端调用 SDK 均为自动生成,因此不支持 Put/Delete 调用。

规则

Midway Hooks 的接口,必须是在模块顶层直接导出的函数。

例子

  1. export async function demo () {}
  2. export const demo = async function () {}
  3. export default async function demo () {}

不支持的导出方式

  1. function demo () {}
  2. // 不支持嵌套
  3. export const exportFunc = {
  4. demo
  5. }
  6. // 不支持再次导出
  7. export {
  8. demo
  9. }
  10. export default demo