在Vue项目中利用swagger配置自动生成访问后台WebApi代码的功能

在Vue项目中利用swagger配置自动生成访问后台WebApi代码的功能


最近在做Vue的前端项目,需要配置自动生成访问WebApi的代码,网上并没有找到相关教程,把我最终找到的解决方案放在这里帮助有需要的人。

WebApi后台配置

  1. WebApi后台需要安装NuGet包Swashbuckle.AspNetCore。
  2. 在Startup.cs文件中配置swagger:
    将如下代码添加到ConfigureServices方法中
services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
            });

将如下代码添加到Configure方法中

			// Enable middleware to serve generated Swagger as a JSON endpoint.
            app.UseSwagger();

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), 
            // specifying the Swagger JSON endpoint.
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.RoutePrefix = string.Empty;
            });

c.SwaggerEndpoint("/swagger/v1/swagger.json", “My API V1”);的作用是配置swagger.json文件的地址及swagger的版本,c.RoutePrefix = string.Empty;的作用是配置swagger页面的路由地址,等于string.Empty则表示主路由。

至此后台端的swagger已配置完成,运行项目结果如下所示:
启动项目后的swagger界面

swagger.json
swagger.json文件

Vue前端配置

首先打开终端输入以下命令安装swagger包:

npm install nswag

打开package.json文件,在"scripts"中添加代码:

"generate-client": "node_modules/.bin/nswag swagger2tsclient /input:%npm_package_devConfig_genClient_input% /output:%npm_package_devConfig_genClient_output%"

在package.json中添加代码:

"devConfig": {
    "genClient": {
      "input": "https://localhost:44333/swagger/v1/swagger.json",
      "output": "src/api-client/client.ts"
    }
  },
  • input的作用是配置后台swagger.json文件的地址,swagger.json是前端swagger进行自动生成代码的输入值,前端依据swagger.json对WebApi的描述来生成相应的访问代码;
  • output配置自动生成的代码的存放路径。

最终配置结果如下所示
在这里插入图片描述

在终端中运行以下命令:

npm run generate-client

generate-client就是上文package.json的script中新增的键。

命令执行后可以看到在src/api-client路径中生成了client.ts文件,client.ts就是访问WebApi的代码,其中包括WebApi端定义的Model代码。可以根据自己需要对自动生成的代码进行修改。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值