Skip to content

如何开发

  • 此片文章讲如何使用abp vnext pro 进行一个快速的curd的开发。

定义后端接口

注意

  • 接口建议全部采用 Post 方式。
  • 接口参数全部用一个对象包装。
  • 接口迁移全部打上swagger的tag标签
  • 假设我们写了一个登录接口
csharp
// 一定要打Tags,因为前端会根据这个生成代理类
// 建议参数都封装为一个Input
[SwaggerOperation(summary: "登录", Tags = new[] {"Account"})]
public Task<LoginOutput> LoginAsync(LoginInput input)
{
    return _loginAppService.LoginAsync(input);
}

前端如何快速开发?

vben2.8

  • 查看配置的swagger地址是否正确
  • nswag->nswag.json
json
  "documentGenerator": {
    "fromDocument": {
      // 代理地址,只有生成的时候用,不区分环境
      "url": "http://localhost:44315/swagger/v1/swagger.json",
    }
  }
  • 如果新建接口或者参数或者返回值有改变,需要重新生成代理,执行:
bash
npm run nswag

调用接口

ts
// 我们在接口上打了Account标签,就引入AccountServiceProxy类
import { AccountServiceProxy,LoginInput,LoginOutput } from '/@/services/ServiceProxies';

/**
 * 登录
 * @param input
 * @returns
 */
export function login(input: LoginInput): Promise<LoginOutput> {
  const _loginServiceProxy = new AccountServiceProxy();
  return _loginServiceProxy.login(input);
}

vben5

  • 查看配置的swagger地址是否正确
  • src->api-client-config.config.ts
ts
import { defineConfig } from '@hey-api/openapi-ts';

export default defineConfig({
  client: '@hey-api/client-axios',
  // 代理地址,只有生成的时候用,不区分环境
  input: 'http://182.43.18.151:44317/swagger/AbpPro/swagger.json',
  output: 'src/api-client',
});
  • 如果新建接口或者参数或者返回值有改变,需要重新生成代理,执行:
bash
npm run nswag

调用接口

ts
// vben5的和vben2.8生成的接口名有区别
import {postApiAppAccountLogin} from '#/api-client';

const { data = {} } = await postApiAppAccountLogin({
     body: {
       // 登录参数
     },
   });

over

  • 这样我们就通过前端代码生成api的方式,调用后端接口了。

如有转载或 CV 的请标注本站原文地址