• WebApi记录


    目录

    1.加上Name,就是一个参数

    2.带参数

    3.返回数据的时间格式化 

    4.Startup.cs文件介绍

    5.AOP,面向切面 

    6.launchSettings中,设置,直接访问

    7.鉴权授权,token

    8.缓存,性能优化


    1.加上Name,就是一个参数

    [HttpGet(Name ="GG{id}")]

    结果是

    不加Name,就是一个路径

    [HttpGet("GG{id}")]

    结果是

    带斜杠,[HttpGet("GG/{id}")] ,就是一个子集的路径了

    2.带参数

    1. [HttpGet("GG/{id}")]
    2. public String Get(string id,string a)
    3. {
    4. return id;
    5. }

    效果

    3.返回数据的时间格式化 

    nuget安装 Microsoft.AspNetCore.Mvc.NewtonsoftJson

    只需要在Program.cs 文件下添加几行代码
    找到builder.Services.AddControllers()

    1. builder.Services.AddControllers()
    2. .AddNewtonsoftJson(options =>
    3. {
    4. options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
    5. });

    4.Startup.cs文件介绍

    1. using Microsoft.AspNetCore.Builder;
    2. using Microsoft.AspNetCore.Hosting;
    3. using Microsoft.AspNetCore.Mvc;
    4. using Microsoft.Extensions.Configuration;
    5. using Microsoft.Extensions.DependencyInjection;
    6. using Microsoft.Extensions.Hosting;
    7. using Microsoft.Extensions.Logging;
    8. using Microsoft.OpenApi.Models;
    9. using System;
    10. using System.Collections.Generic;
    11. using System.Linq;
    12. using System.Threading.Tasks;
    13. namespace WebApplication1
    14. {
    15. public class Startup
    16. {
    17. public Startup(IConfiguration configuration)
    18. {
    19. //初始化,依赖注入IOC
    20. Configuration = configuration;
    21. }
    22. public IConfiguration Configuration { get; }
    23. // This method gets called by the runtime. Use this method to add services to the container.
    24. public void ConfigureServices(IServiceCollection services)
    25. {
    26. //运行的时候调用
    27. services.AddControllers();
    28. //注册Swagger服务
    29. services.AddSwaggerGen(c =>
    30. {
    31. c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebApplication11", Version = "v1", Description="23335" });
    32. });
    33. }
    34. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    35. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    36. {
    37. //.net core中内置kestrel主机,管道模式,中间件,
    38. //这里随意配置中间件,拓展性非常大
    39. if (env.IsDevelopment())
    40. {
    41. //开发者模式的话,启动异常
    42. app.UseDeveloperExceptionPage();
    43. }
    44. app.UseSwagger();
    45. app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebApplication2 v1"));
    46. app.Use(async (context, next) =>
    47. {
    48. //logger.LogInformation("M1request"); //使用中间件
    49. await next(); //执行下一个中间件,
    50. //logger.LogInformation("M1response"); //先执行一个,结束后返回到这个,再执行这个使用中间件
    51. });
    52. app.UseHttpsRedirection();
    53. app.UseRouting();
    54. app.UseAuthorization();
    55. app.UseEndpoints(endpoints =>
    56. {
    57. endpoints.MapControllers();//结束
    58. });
    59. }
    60. }
    61. }

    5.AOP,面向切面 

    .net。先走构造,再走filter

    .net core。先走filter,再走构造,再走filter

    例如:onResourceExecuted() 做缓存资源,如果缓存里面有值,下次就不会执行了

    Actionfilter,做日志,数据验证,性能监控,数据压缩

    例如:onActionExecuing() 先执行。   onActionExecuted()   后执行

    获取方法名字:context.RouteData.Values["action"] 参数:context.ActionArguments

    全局->控制器->方法

    core套娃:中间件,action

    6.launchSettings中,设置,直接访问

    "launchUrl": "swagger/index.html"

    7.鉴权授权,token

    传统:session/cookies

    1.鉴权中心授权

    2.请求api+token,非对称可逆加密

    8.缓存,性能优化

    二八原则,20%是增删改,80%是查询

    AOP,面向切面编程:

    在执行某一个方法之前,做事情,再执行之后,再做事情。

    5大filter,继承Attribute、IResourceFilter,实现接口,做缓存

    先走onResourceExecuing() ,再走方法,最后走onResourceExecuted()

     如果Nginx加了代理,代码又写了缓存,会产生问题。

    网址第一次点击不变,代码产生缓存,第二次点击,网页变化了。

    解决办法,内存缓存,使用Redis缓存。

    依赖注入,IRedisStringService

  • 相关阅读:
    python使用seedir查看文件目录结构
    springBoot 入门一 :创建springBoot项目
    前端面试题之【HTTP/HTML/浏览器】
    华为云云耀云服务器L实例评测|云耀云服务器L实例部署Linux管理面板mdserver-web
    MySQL基础|在Navicat中输入SQL语句步骤【含SQL语句约束规范】
    idea搭建项目找不到Tomcat
    wget 下载盯盘文件
    Flutter实战-请求封装(五)之Isolate线程改造
    QT:使用行编辑器、滑动条、滚动条、进度条、定时器
    问遍了身边的面试官朋友,我整理出这份 Java 集合高频面试题(2021年最新版)
  • 原文地址:https://blog.csdn.net/u012563853/article/details/125088068