首页 > 编程语言 >Asp.Net7 与 Vue3 组成的 BFF模式

Asp.Net7 与 Vue3 组成的 BFF模式

时间:2023-01-30 12:22:24浏览次数:47  
标签:Asp BFF 项目 app Vue3 SPA builder

大家好,我是没有好工作的后端开发工程师,兼云原生方向的运维,被社会毒打被迫学习前端,写文保平安。

介绍

BFF 模式 Backend For Frontend(服务于前端的后端)
初看我们会感觉它是MVC,因为它与BFF都是带有后端的前端
不一样的是BFF是针对于SPA项目(SPA 是单页应用程序,如我们常用的Vue3)

这种带有后端的前端,有一个好的特性,保护好了前端的安全。
前端的安全性:比如要保护 发送给后端的一个Key和加密解密的过程。
纯前端的话要把KEY放在JS中是很不安全的。

如何在ASP.NET7里使用Vue3?

第一,创建空白ASP.NETCore项目,名叫SPA。(忽略

第二,在项目中引入Vue3项目

  1. 可以在当前项目下创建,如下图所示
    我们需要创建一个Vue3的项目,这里使用NPM安装。我给它命名为ClientApp。
    image
  2. 也可以在当前项目下创建客户端文件夹,把已经写好的Vue3项目复制进来。

第三,安装微软官方提供的SPA包。

Microsoft.AspNetCore.SpaServices.Extensions

第四,修改Program.cs文件。

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSpaStaticFiles(configuration => configuration.RootPath = "ClientApp/dist");
var app = builder.Build();
app.UseSpaStaticFiles();
app.UseSpa((spa) => { });
app.Run();

这个 configuration.RootPath = "ClientApp/dist" dist是生产环境的文件夹,是需要生成的出来的。

第五,得到结果。

  1. 生成Vue3项目。
    image
  2. 执行当前.NET项目
    image

结论:

可以只复制dist文件夹,到项目中。
开发环境,建议还是运行 npm run dev,不建议使用 .NET编译生成环境的SPA。
生产环境或者多项目在VS2022快速协作调试,可以使用 npm run build 生成 dist 文件夹使用。

如何在ASP.NET7的SPA项目中使用本地API,组成BFF模式?

答案很简单,在此项目中我们可以使用控制器,中间件。
演示一个控制器的。

第一. 创建一个控制器

image
修改Program.cs

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSpaStaticFiles(configuration => configuration.RootPath = "ClientApp/dist");
builder.Services.AddControllers(); //new
var app = builder.Build();
app.UseSpaStaticFiles();
app.UseSpa((spa) => { });
app.MapControllers(); //new
app.Run();

第二. 修改Vue项目中的 App.vue

image

fetch(new Request("/good")).then(resp => {
  if (resp.ok) {
    resp.text().then(context =>{
      console.log(context);
    })
  }
});

第三,得到结果

image

结论

调试:在开发环境下,配置地址为这个项目服务器地址。在生产环境下去掉服务器地址。
容器友好:起一个dockerfile 可以直接跑在容器中。(有需要我可以讲)
BFF模式)SPA安全:降低了在前端对后端的配置,大多数配置完全可以放在后端API中 。

标签:Asp,BFF,项目,app,Vue3,SPA,builder
From: https://www.cnblogs.com/YataoFeng/p/17075099.html

相关文章

  • 在asp.net core web api中添加efcore使用codefirst
    首先创建webapi项目,我这里使用的版本是.net6  在nuget中添加对应的工具包 红框标出来的是对应的数据库扩展包,mysql用mysql版,sqlserver用sqlserver版,选择正确的版......
  • 让Windows Server 2008r2 IIS7.5 ASP.NET 支持10万并发请求
    由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误。为了避免这样的错误,我们根据相关文档调整了......
  • Vue3学习(二) 全家桶,从 0 到 1 实战项目
    Vue3全家桶,从0到1实战项目 前端发展百花放,一技未熟百技出。未知何处去下手,关注小编胜百书。我是前端人,专注分享前端内容!本篇文章主要是,使用vite创建一个vue......
  • vue3学习(一)
    vue3的搭建项目及启动 1、npm和git提前安装好。新建文件夹右键,选择GitBashHere2、使用npm命令安装vue/cli,这里需要使用--force运行 npminstall-g@vue/cli-......
  • vue3引入ElementPlus实现OOS前端直传
    1.1开通OSS服务登录阿里云官网;将鼠标移至产品标签页,单击对象存储OSS,打开OSS产品详情页面;在OSS产品详情页,单击立即开通。1.2后端整合OSS实现文件上传在pom.xml中添......
  • ASP.NET 启动和运行机制
    原文网址:https://www.cnblogs.com/yuyue5945/p/14149168.htmlASP.NETCoreASP.NETCore的运行机制ASP.NETCore的启动ASP.NETCore管道中间件ASP.NETCore的运......
  • vue3语法糖+ts组件传值
    在开发中有些功能是通用的,而且逻辑大致相同,像这种东西可以封成一个组件,比较常用的就是函数封装,组件封装,组件封装是需要引入到页面使用的,所以通常它会有一些自己的方法,父子......
  • vue3和百度地图关键字检索 定位 点击定位
    效果图在index.html中引入百度地图开放平台  去申请你的ak非常的简单可以自己百度一下<!--这个用官网给的有好多警告更具百度的把https://api.map.baidu.com......
  • springboot 怎么启动aop @EnableAspectJAutoProxy
    SpringBoot项目使用aophttps://blog.csdn.net/qq_39176307/article/details/124714191Spring-AOPSpringBoot自动配置和启动SpringAOPhttps://www.bbsmax.com/A/QV5ZX3......
  • 【ASP.NET Core】动态映射MVC路由
    ASP.NETCore中的几大功能模块(RazorPages、MVC、SignalR/Blazor、Mini-API等等)都以终结点(EndPoint)的方式公开。在HTTP管道上调用时,其扩展方法基本是以Map开头,如 Map......