From bef8266b1a1b92298c233deb70963730c32a2010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cyueqiang=E2=80=9D?= <“1628282446@qq.com”> Date: Sun, 26 May 2024 23:44:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0=E6=9D=A5=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pi\347\232\204\346\246\202\345\277\265.md" | 17 ++++++ ...24\350\256\260-net core\345\222\214api.md" | 11 ++++ ...0-\344\270\255\351\227\264\344\273\266.md" | 45 +++++++++++++++ ...35\350\265\226\346\263\250\345\205\245.md" | 57 +++++++++++++++++++ ...4\350\256\260-\345\244\215\344\271\240.md" | 55 ++++++++++++++++++ 5 files changed, 185 insertions(+) create mode 100644 "\345\262\263\345\274\272/20240514 - \347\254\224\350\256\260-webapi\347\232\204\346\246\202\345\277\265.md" create mode 100644 "\345\262\263\345\274\272/20240520 - \347\254\224\350\256\260-net core\345\222\214api.md" create mode 100644 "\345\262\263\345\274\272/20240521 - \347\254\224\350\256\260-\344\270\255\351\227\264\344\273\266.md" create mode 100644 "\345\262\263\345\274\272/20240523 - \347\254\224\350\256\260-\344\276\235\350\265\226\346\263\250\345\205\245.md" create mode 100644 "\345\262\263\345\274\272/20240524 - \347\254\224\350\256\260-\345\244\215\344\271\240.md" diff --git "a/\345\262\263\345\274\272/20240514 - \347\254\224\350\256\260-webapi\347\232\204\346\246\202\345\277\265.md" "b/\345\262\263\345\274\272/20240514 - \347\254\224\350\256\260-webapi\347\232\204\346\246\202\345\277\265.md" new file mode 100644 index 0000000..f51ea5c --- /dev/null +++ "b/\345\262\263\345\274\272/20240514 - \347\254\224\350\256\260-webapi\347\232\204\346\246\202\345\277\265.md" @@ -0,0 +1,17 @@ +# webapi的概念 +Web API(Web Application Programming Interface)是一种用于与 Web 服务器或 Web 服务进行通信的接口。它允许不同的软件系统之间进行数据交换和通信,从而实现各种功能和服务。 + +以下是关于 Web API 的一些知识点: + +1. 类型:Web API 可以分为两种类型:基于 SOAP(Simple Object Access Protocol)的 Web 服务和基于 REST(Representational State Transfer)的 Web 服务。基于 SOAP 的 Web 服务使用 XML 格式进行数据交换,而基于 REST 的 Web 服务则使用 JSON 格式。 + +2. 功能:Web API 可以用于实现各种功能,如数据获取、数据提交、身份验证、文件上传下载等。它可以让不同的应用程序之间进行数据交换和通信,实现信息共享和功能扩展。 + +3. 使用方式:开发人员可以通过 HTTP 请求来调用 Web API 提供的功能。通常,开发人员会使用各种编程语言和框架来调用 Web API,如 JavaScript、Ajax、Fetch API、Vue.js、React 等。 + +4. 安全性:Web API 通常需要进行身份验证和授权才能访问受保护的资源。开发人员可以使用 API 密钥、OAuth 认证等方式来确保 Web API 的安全性。 + +5. 示例:一些常见的 Web API 包括 Google Maps API(用于地图服务)、Twitter API(用于获取推文)、GitHub API(用于访问 GitHub 上的数据)等。 + +总的来说,Web API 是一种用于实现不同软件系统之间数据交换和通信的接口,可以帮助开发人员构建更加强大和灵活的应用程序。 + diff --git "a/\345\262\263\345\274\272/20240520 - \347\254\224\350\256\260-net core\345\222\214api.md" "b/\345\262\263\345\274\272/20240520 - \347\254\224\350\256\260-net core\345\222\214api.md" new file mode 100644 index 0000000..3073915 --- /dev/null +++ "b/\345\262\263\345\274\272/20240520 - \347\254\224\350\256\260-net core\345\222\214api.md" @@ -0,0 +1,11 @@ +# .net core 和 api .net core +## .net core +.NET Core是一个跨平台的开源框架,用于构建现代化、高性能和可扩展的应用程序。它允许开发人员在不同的操作系统上进行开发和部署,包括Windows、macOS和Linux。 + + + +## api .net core + +API .NET Core是基于.NET Core框架开发的应用程序接口。它提供了一种独立于操作系统的方式来创建和连接不同的软件应用程序,使它们可以相互通信和共享数据。API .NET Core通常用于构建Web服务和微服务,以便其他应用程序可以使用HTTP协议进行通信。 + +总的来说,.NET Core是一个框架,用于构建各种类型的应用程序,而API .NET Core则是一种特定类型的应用程序接口,用于连接不同的软件应用程序。它们都可以利用.NET Core框架的功能和特性来实现高效、灵活和可扩展的应用程序开发。 \ No newline at end of file diff --git "a/\345\262\263\345\274\272/20240521 - \347\254\224\350\256\260-\344\270\255\351\227\264\344\273\266.md" "b/\345\262\263\345\274\272/20240521 - \347\254\224\350\256\260-\344\270\255\351\227\264\344\273\266.md" new file mode 100644 index 0000000..e4da74a --- /dev/null +++ "b/\345\262\263\345\274\272/20240521 - \347\254\224\350\256\260-\344\270\255\351\227\264\344\273\266.md" @@ -0,0 +1,45 @@ +# 中间件 +## 启动代码 +在.NET Core中,API项目的启动程序代码通常位于Program.cs文件中。以下是一个示例程序.cs文件的代码,展示了一个基本的API .NET Core项目的启动程序代码: + +```csharp +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; + +namespace MyApiProject +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} +``` + +在这个示例中,Main方法调用CreateHostBuilder方法创建主机,并通过调用Build方法和Run方法来启动API应用程序。CreateHostBuilder方法使用Host.CreateDefaultBuilder方法来配置主机,并使用ConfigureWebHostDefaults方法来配置Web主机。在ConfigureWebHostDefaults方法中,使用UseStartup方法指定启动类Startup.cs来配置API应用程序。 + +请注意,实际的启动程序代码可能会包含其他配置和设置,取决于具体的API项目需求。但通常情况下,以上述示例代码中的基本结构将用于启动一个API .NET Core项目。 +## 中间件 + +在ASP.NET Core中,中间件是一个组件,它可以处理HTTP请求和响应,并就此进行操作。中间件是一种插件式的方式,允许在请求到达应用程序之前和响应返回给客户端之前对请求和响应进行一系列的处理。以下是一些关于API .NET Core中间件的知识点: + +1. 中间件是按照添加的顺序依次执行的:在ASP.NET Core中,中间件是按照它们被添加到请求处理管道中的顺序依次执行的。这意味着较早添加的中间件会在后面添加的中间件之前执行。 + +2. 中间件可以执行各种任务:中间件可以用于执行各种任务,包括日志记录、异常处理、身份验证、授权、缓存、路由等等。开发人员可以根据应用程序的需求自定义和添加中间件。 + +3. 中间件使用UseMiddleware方法添加到请求处理管道中:在Startup.cs文件的Configure方法中,使用UseMiddleware方法将中间件添加到HTTP请求处理管道中。例如,可以通过调用app.UseMiddleware()来添加名为CustomMiddleware的自定义中间件。 + +4. 中间件可以基于委托或类来实现:中间件可以基于Func委托实现,也可以基于中间件类来实现。通常情况下,中间件类实现中间件逻辑更清晰和易于管理。 + +5. 中间件可以实现短路请求管道:中间件可以根据条件直接短路请求管道,终止请求的继续处理或直接返回响应给客户端。 + +通过合理地使用中间件,开发人员可以轻松地实现应用程序中的各种功能和需求,同时确保代码的可维护性和灵活性。Middlewares 是 ASP.NET Core 强大且灵活的功能之一,开发人员应深入了解并熟练应用中间件概念。 diff --git "a/\345\262\263\345\274\272/20240523 - \347\254\224\350\256\260-\344\276\235\350\265\226\346\263\250\345\205\245.md" "b/\345\262\263\345\274\272/20240523 - \347\254\224\350\256\260-\344\276\235\350\265\226\346\263\250\345\205\245.md" new file mode 100644 index 0000000..06b58a7 --- /dev/null +++ "b/\345\262\263\345\274\272/20240523 - \347\254\224\350\256\260-\344\276\235\350\265\226\346\263\250\345\205\245.md" @@ -0,0 +1,57 @@ +# 依赖注入 +依赖注入(Dependency Injection,DI)是.NET Core应用程序中常用的设计模式,用于管理和提供应用程序需要的依赖项。在API .NET Core中,依赖注入可用于将服务(services)注入到控制器、中间件、过滤器等组件中。以下是有关API .NET Core依赖注入的知识点和示例: + +1. 依赖注入容器:在.NET Core中,依赖注入容器负责管理应用程序中的依赖关系,用于解析所需的服务实例。一个常用的依赖注入容器是.NET Core内置的IServiceProvider接口。 + +2. 注册服务:在Startup.cs文件的ConfigureServices方法中,可以注册应用程序需要使用的服务。服务可以通过AddTransient、AddScoped和AddSingleton方法注册,分别表示瞬时、作用域和单例生命周期。 + +3. 服务提供者:在需要使用服务的地方,可以通过依赖注入将服务注入到控制器或其他组件中。ASP.NET Core会自动创建服务提供者,开发人员可以在构造函数或方法参数中请求所需的服务。 + +以下是一个简单的示例,展示了如何在API .NET Core中使用依赖注入: + +```csharp +// 服务接口 +public interface IMyService +{ + void DoSomething(); +} + +// 服务实现 +public class MyService : IMyService +{ + public void DoSomething() + { + Console.WriteLine("Doing something..."); + } +} + +// 在Startup.cs中注册服务 +public void ConfigureServices(IServiceCollection services) +{ + services.AddTransient(); +} + +// 控制器 +[ApiController] +[Route("api/[controller]")] +public class MyController : ControllerBase +{ + private readonly IMyService _myService; + + public MyController(IMyService myService) + { + _myService = myService; + } + + [HttpGet] + public IActionResult Get() + { + _myService.DoSomething(); + return Ok(); + } +} +``` + +在上面的示例中,我们定义了一个名为IMyService的服务接口和一个实现该接口的MyService类。在Startup.cs中使用AddTransient方法注册该服务,然后在控制器中通过构造函数进行依赖注入,使控制器可以使用MyService服务。当调用控制器的Get方法时,会调用MyService的DoSomething方法。 + +这是一个简单的示例,实际中使用依赖注入通常会包含更多的服务和复杂的依赖关系。通过使用依赖注入,可以提高代码的可测试性、可维护性和可扩展性。 diff --git "a/\345\262\263\345\274\272/20240524 - \347\254\224\350\256\260-\345\244\215\344\271\240.md" "b/\345\262\263\345\274\272/20240524 - \347\254\224\350\256\260-\345\244\215\344\271\240.md" new file mode 100644 index 0000000..4b0d770 --- /dev/null +++ "b/\345\262\263\345\274\272/20240524 - \347\254\224\350\256\260-\345\244\215\344\271\240.md" @@ -0,0 +1,55 @@ +# 复习 +## program.cs +```c# + namespace MyWebApi; +public class Program{ + //这是Program类的Main方法,是应用程序的入口点。当应用程序启动时,会执行Main方法中的代码 + public static void Main(string[] args){ + //调用CreateWebHostBuilder方法创建IHostBuilder,然后构建IHost并运行应用程序。 + CreateWebHostBuilder(args).Build().Run(); + } + +// /这是一个静态方法,用于创建IHostBuilder实例,配置应用程序的主机。 + public static IHostBuilder CreateWebHostBuilder(string[] args) + { + //创建默认的主机构建器,并配置WebHost的默认设置。UseStartup()指定了启动应用程序时要使用的Startup类。 + return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(builder=>{ + builder.UseStartup(); + }); + } +} +``` +## Startup.cs +```c# + namespace MyWebApi; +public class Startup{ + //这是一个公共方法,用于配置应用程序的服务。IServiceCollection参数services是一个容器,用于注册应用程序中的服务。 + public void ConfigureServices(IServiceCollection services){ + //这行代码注册控制器服务。AddControllers()方法告诉应用程序使用控制器来处理HTTP请求。 + services.AddControllers(); + } + + //用于配置应用程序的请求处理管道。IApplicationBuilder参数app表示应用程序的请求处理管道。 + public void Configure(IApplicationBuilder app){ + //这行代码启用路由中间件。路由中间件用于确定如何将传入的HTTP请求映射到应用程序中的端点(即控制器的方法) + app.UseRouting(); + //这行代码配置端点路由。MapControllers()方法告诉应用程序将请求映射到控制器的动作方法。 + app.UseEndpoints(endPoint=>{ + endPoint.MapControllers(); + }); + +} +} +``` +## /Controllers/HowlowControllers.cs.cs +```c# + using Microsoft.AspNetCore.Mvc; +namespace MyWebApi; +//使用[Route]属性指定路由,[Route("book")]来指定整个控制器的路由前缀为/book +[Route("/book")] +public class BookController:Controller{ + public IActionResult Index(){ + return Ok("886"); + } +} +``` \ No newline at end of file -- Gitee