WebApi 返回类型
- 自定类型
简单或复杂数据结构;
- IActionResult
返回指定Http状态码;
- Ok()
- NotFound()
-ActionResult
可同时返回状态码及对象。
返回值为ActionResult< ItemClass>
简单或复杂数据结构;
返回指定Http状态码;
-ActionResult
可同时返回状态码及对象。
返回值为ActionResult< ItemClass>
Post传递数据:
Axios 在RequestPayload中传递Json格式;
Ajax 在QueryStringParameter(Form表单)中传递键值对;
举例:
| API | 描述 |
|---|---|
| GET /api/items | 获取所有item |
| GET /api/item/{id} | 获取制定项 |
| POST /api/items | 添加新项 |
| PUT /api/items/{id} | 更新现有项 |
| DELETE /api/items/{id} | 删除现有项 |
| 不常用: | |
| PATCH /api/items/{id} | 更新现有项部分内容 |
Controller下:
若方法为
public IActionResult method(){
return View();
}则会生成并返回 对应的View视图;
MVC 与 WebApi的区别:
mvc:
controller是实现Controller(继承自ContollerBase);
有添加ControllerWithViews 服务;
有Route;
能够使用Razor引擎(Cshtml)
WebApi:
Controller 继承 ControllerBase;
只能使用普通web调用接口(ajax,axios,fetch);
有swagger;
.NetCore MVC项目的启动大致有以下流程:
但在不同版本中,实现上略有差异:
.Net5 中,在Main方法里调用 CreateHostBuilder 方法执行 StartUp类,在其中注册服务并添加中间件,后再 Build 与 Run。
.Net6中,运行类直接使用顶级语句,先将App Build好,再注册服务与添加中间件,最后Run。