> 文档中心 > umi call 后端 api

umi call 后端 api


主思路

使用 umi request包装的service api,并且做好参数交换。

详情

如果已经有swagger openapi json就可以先生成代码和mock,但是不一定会很理想,可能要做细调,这意味着如果api再进行改动可能就是要人工调整了。如果没有就只能手写了

一般生成在src/services/下,配置在config.ts

  openAPI: [    {      requestLibPath: "import { request } from 'umi'",      schemaPath: join(__dirname, 'api.json'),      mock: true,      projectName: 'api',    },  ],

调用顺序

UI event/trigger(比如点击,提交之类) -> UI内部func -> service api -> umi request

这中间需要匹配参数,如果比较频繁使用可以考虑定义type,方便使用

// UI event/trigger  {     await handleSubmit(values);   }} > // UI内部 funcimport { AuthLogin } from '@/services/api/Auth';    const handleSubmit = async (values: Record) => {    try {      const { username, password } = values;      // 登录      const msg = await AuthLogin({ username: username, password: password });    } catch (error) {      const defaultLoginFailureMessage = intl.formatMessage({ id: 'pages.login.failure',      });      message.error(defaultLoginFailureMessage);    }  };    // service apiimport { request } from 'umi';export async function AuthLogin(  body: {    device_id?: string;    password: string;    username: string;  },  options?: { [key: string]: any },) {  return request('/login', {    method: 'POST',    headers: {      'Content-Type': 'application/json',    },    data: body,    ...(options || {}),  });}

参考

umi官方 @umijs/plugin-request

antd pro官方 网络请求 - Ant Design Pro