20181124_webAPI基础01_创建一个基础的WebAPI项目
2021-06-29 16:08
标签:过程 升级 输入 png 注册 9.png 控制 img 用户名 1. webApi属于RESTful架构风格, 而RESTful风格, 是以资源为视角来描述服务的 2. 创建webAPI项目 3. 选择webAPI, 然后mvc会自动引用 4. 点击确定, 就创建好一个WebAPI项目, 项目目录如下: 5. 现在就可以尝试访问了: 6. 简单介绍: a) 此时controller中有两个默认的controller b) webAPI的访问方式, 这里返回的是xml, 而ie下返回的是 json; 这是由response的返回头决定的, 可以f12看看返回头的定义 7. 在浏览器输入http://localhost:4071/api/values, 请求的过程是什么? a) 一个网站启动的时候, 第一个启动的肯定是Global.asax文件中的WebApiApplication下面的Application_Start()站启动的时 b) 路由注册: 8. webAPI的运转流程: 1 启动的时候: Application_Start-→WebApiConfig.Register-→把路由规则写入一个容器(routeTable) 2 运行的时候: 请求会去容器匹配--找到第一个满足的控制器--然后按照以下规则去找action(http method): a 优先查找方法时候标记了特性 [HttpGet], 如果有标记, 则优先找参数最佳匹配的 b 如果都没有有标记[HttpGet]特性, 则找方法以Get开头 c (找方法时)优先参数最匹配 api/values/1--→Get(int id); 也就是说当请求过来的时候, 又能找到以[HttpGet]特性的方法, 又能找到以 Get开头的方法, 那么则使用参数做为最佳匹配 d 如果没有 [HttpGet] 特性, 也没有以 Get开头的方法, 则直接会报错了 9. 基于WebAPI中的普通路由,访问时带来的两个问题: a) 对一个资源(webAPI中所说的资源可以理解为一条数据)做同一种操作, 可能有多种方式; 比如根据用户Id修改用户密码, 根据用户Id修改用户名称, 根据用户Id修改用户邮箱 b) WebAPI中经常会有版本的问题, 比如在一个values控制器里, 对某个方法进行升级, 表示v1版本, v2版本; 那么如果只使用webAPI的默认路由来调用的话, 就不能区分了 以上两种问题, 只使用webAPI中的默认路由已经办不到了, 所以webAPI又提供了一种特性路由 c) 特性路由的写法: 1 在Global文件的config.MapHttpAttributeRoutes()中写; 2 也可以直接在 控制器下的action上打特性路由标记, 比如 [Route("api/values")](下图) ; 参考 ValuesController.cs 中的路由特性标记 10. 添加控制器: a) 右键Controllers目录 b) 选择一个控制器类型 c) 命名控制器 d) 等待完成 e) 完成 20181124_webAPI基础01_创建一个基础的WebAPI项目 标签:过程 升级 输入 png 注册 9.png 控制 img 用户名 原文地址:https://www.cnblogs.com/wxylog/p/10011284.html
文章标题:20181124_webAPI基础01_创建一个基础的WebAPI项目
文章链接:http://soscw.com/index.php/essay/99446.html