31:NET5 WebApi

WebApi和MVC的区别

MVC:完整的Web开发框架,网站开发框架,包含了业务处理+用户UI;

WebApi:其实就是一个服务接口,主要作用是用来服务的;一种对外的接口;用它来无法独立完成一套web开发,需要和前端配合完成;WebApi主要负责处理业务,不管用户的UI界面;Webapi性能更加优于MVC;更加轻巧;WCF,WebService;网络服务; 更多适合移动端配置; 数据传输—JSON

如果团队中前端人才相对较少;可以选择MVC;
如果只是对外提供服务—前后端分离—支持移动端服务—WebApi;

RESTful架构风格和WebApi

  • 资源与URI
  • 统一资源接口
  • 资源的表述
  • 资源的链接
  • 状态的转移
    MVC—调用Action本质是调用方法;在服务端统一处理;
    RestFull:不再是调用方法;把服务资源化;看做一个整体;然后对外提供一个URI----统一资源定位器;提供Get/Post/Put/Delete/Patch 五种操作;
    资源化----其实WebApi一般情况下,很少遵循RestFull
    资源:班级,某一个同学;

Swagger版本控制

版本控制。WebApi程序创建时,自动集成Swagger

WebApi路由&特性路由

特性路由

WebApi前台调用详析

Ajax调用;

WebApi后台调用详析

后台模拟Http请求

WebApi跨域请求

31:NET5 WebApi
这就是跨域请求给我们展示的错误:
报错!
是因为浏览器的同源策略导致置的跨域问题;
你们认为这个请求,服务端能够响应不?
服务器其实能够响应;

浏览器同源策略

31:NET5 WebApi
跨域问题其实是浏览器所限定的;
同源策略 是由NetScape提出的一个著名的安全策略。所谓的同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,浏览器认为这个资源不安全,不能用。

同源策略的作用是什么?是为了保护服务器;

一是来自一个源的js只能读写自己源的存储不能读写其他源的存储,存储包括Cookie、Session Storage、Local Storage、Cache、Indexed DB等。

解决跨域

1.JSONP —前端开发者使用较多
2.通过后台模拟Http请求请求Api 本质是避开浏览器同源策略
3.在服务器端指定允许你跨域

CoreWebApi如何让Api支持跨域

基于Http请求中在响应中增加Header参数:Add(“Access-Control-Allow-Origin”, “*”);

AOP-Filter

AspNetCore:AOP—Filter

MiddleWare跨域

依赖于程序包:Microsoft.AspNetCore.Cors

services.AddCors(option => option.AddPolicy(“AllowCors”, _build => _build.AllowAnyOrigin().AllowAnyMethod()));

app.UseCors(“AllowCors”); //必须要在UseRouting 之后 在 UseAuthorization之前

JSONP

在部分Html标签中,在请求服务器的时候,不用受浏览器同源策略限制;

上一篇:.NET平台系列23:.NET Core/.NET5/.NET6 和 .NET Framework 的选择建议


下一篇:上周热点回顾(6.21-6.27)