[Day05] Web API 专案架构

今天我们来介绍一下我们 API 专案的架构。.NET 帮我们产生的专案包含以下几个部分:

  • Properties 资料夹 – 里面有一个 launchSettings.json 用来设定我们的 API 程序启动时的方式。其中 “iisSettings” 区块是在 IIS 上执行时会套用的设定,Visual Studio 按 F5 就是跑在 IIS Express 上。另外有一个区段会与专案名称同名,这个区段是跑在 Kestrel 上面时会套用的设定,以後我们发布程序到 Linux VM 就是套用这边的设定。
  • 相依性 – 在这里可以检视我们所使用的套件资讯(VS code 看不到这个节点,必须自己打开 csprj 档来检视)
  • Controllers 资料夹 – Controller 简单来说就是用来定义我们对外的 API 接口,使用者的 request 如果是合法的、而且有对应到 Controller Action(我们称controller 的 public method 为 action),这个 Controller 就会处理这个 request 并回覆 response
  • appsettings.json – 正式环境(Production)的设定档,我们可以透过 .NET 的 IConfiguration 扩充功能从这里取得程序需要的设定值。注意!如果这个档案包含重要的隐私资讯,请勿加入版控!
  • appsettings.Development.json – 开发环境的设定档,本机 debug 的时候,这个设定档会盖掉正式环境的设定
  • Program.cs – 程序进入点
  • Startup.cs – 主要用来注册 Service、使用 Middleware
  • WeatherForecast.cs – 「WeatherForecastController」会用到的 Model

以下是简化的 API Server 运作流程:

  1. 根据 Startup.cs 中的程序码,开始准备 Service 或 Middleware
  2. 根据 launchSettings.json 设定开始监听特定 port 的 Request
  3. 合法的 Request 进到 Controller,Controller 透过依赖注入取得 Service,然後处理 Request
  4. Request 处理完毕後,Server 回传 Response

微软的这篇文章钜细靡遗地说明了整个专案的架构,有兴趣的邦友可以参考这篇文章获得更多有关 Web API 的知识。

明天我们会先在现有的架构下时做一个简单的 Restful API,之後再介绍如何在 .NET 实现 DI(Dependency Injection,依赖注入)并取得 service


<<:  DAY05 资料分析的步骤

>>:  Day 05 「乖,听话给你吃糖果!」测试与依赖:测资料 之 用资料控制依赖

Day 27 - 上传档案 Carrierwave - 多个档案

昨天说的是单一档案上传,如果要多个档案上传的话... 建立新栏位 资料表先新增可以储存一个阵列的栏位...

[前端暴龙机,Vue2.x 进化 Vue3 ] Day12.事件处理

Vue 里面的事件处理,使用的方式会跟一般 JavaScript 的用法相近,下面跟着一起看吧~ 事...

Day.17 Graph-DFS

DFS是简写,全名是Depth-First-Search(深度优先搜寻演算法) DFS是一种搜寻的算...

勒瑰恩谈写作 (2) 叙事观点和声音

今天算是主菜⋯⋯可惜还剩一点尾巴,明天才能读完全本。 不过实际在读的时候,要参照很多的案例,把所有的...

Day 25 权限宝石:IAM User 建立与使用(上)

今天我们要来介绍 AWS IAM 的实作示范,那我们开始吧! 建立新的 IAM User 首先进入...