Web API 约定

默认的约定

集将应用于 ContactsConventionController 中的所有操作:

[ApiController]
[ApiConventionType(typeof(DefaultApiConventions))]
[Route("api/[controller]")]
public class ContactsConventionController : ControllerBase
{

默认的约定集将应用于程序集中的所有操作:

[assembly: ApiConventionType(typeof(DefaultApiConventions))]
namespace ApiConventions
{public class Startup{

创建 Web API 约定

如果默认 API 约定不能满足需要,请创建自己的约定。 约定是:

  • 带有方法的静态类型。
  • 能够对操作定义响应类型和命名要求。

响应类型

这些方法使用 [ProducesResponseType][ProducesDefaultResponseType] 属性进行批注。 例如:

C#复制

public static class MyAppConventions
{[ProducesResponseType(StatusCodes.Status200OK)][ProducesResponseType(StatusCodes.Status404NotFound)]public static void Find(int id){}
}

如果没有更具体的元数据属性,则将此约定应用于程序集可强制实现以下内容:

  • 该约定方法应用于所有名为 Find 的操作。
  • id 操作上存在名为 Find 的参数。

命名要求

[ApiConventionNameMatch][ApiConventionTypeMatch] 属性可应用于约定方法,确定它们所要应用的操作。 例如:

C#复制

[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ApiConventionNameMatch(ApiConventionNameMatchBehavior.Prefix)]
public static void Find([ApiConventionNameMatch(ApiConventionNameMatchBehavior.Suffix)]int id)
{ }

在上面的示例中:

  • 应用于该方法的 Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior.Prefix 选项表示该约定可匹配前缀是“Find”的任何操作。 匹配的操作可以是 FindFindPetFindById
  • 应用于该参数的 Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchBehavior.Suffix 表示该约定可匹配带有唯一以标识符作为后缀结尾的参数的方法。 示例包括 idpetId 等参数。 与此类似,可将 ApiConventionTypeMatch 应用于类型,以约束参数类型。 params[] 参数指示无需显式匹配的剩余参数。

Web API 约定相关推荐

  1. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  2. 从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD

    第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分 ...

  3. Web API路由和动作选择

    前言 本文描述ASP.NET Web API如何把一个HTTP请求路由到控制器的一个特定的Action上.关于路由的总体概述可以参见上一篇教程 http://www.cnblogs.com/aehyo ...

  4. Web APi之控制器选择Action方法过程(九)

    前言 前面我们叙述了关于控制器创建的详细过程,在前面完成了对控制器的激活之后,就是根据控制器信息来查找匹配的Action方法,这就是本节要讲的内容.当请求过来时首先经过宿主处理管道然后进入Web AP ...

  5. ASP.NET Web API 特性

    ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...

  6. 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

    第一部分: https://www.cnblogs.com/frank0812/p/11165940.html 第二部分:https://www.cnblogs.com/frank0812/p/111 ...

  7. Web API应用架构设计分析(2)

    在上篇随笔<Web API应用架构设计分析(1)>,我对Web API的各种应用架构进行了概括性的分析和设计,Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端 ...

  8. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)

    工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...

  9. Web APi之EntityFramework【CRUD】(三)

    前言 之前我们系统学习了EntityFramework,个人觉得有些东西不能学了就算完了,必须要学以致用,在Web API上也少不了增(C).删(D).改(U).查(R).鉴于此,我们通过EF来实现W ...

最新文章

  1. 学界 | 量化深度强化学习算法的泛化能力
  2. Python教程WEB安全篇
  3. 【记录】一些非常方便的命令集合
  4. mysql 一条sql update多条记录
  5. java编程控制电脑硬件_如何快速学习AP计算机中的Java编程?
  6. 【玩转cocos2d-x之三十一】弱联网与服务器的通讯
  7. TensorFlow 全网最全学习资料汇总之TensorFlow的技术应用
  8. Java 8之新特性详解
  9. 计算机科学导论第12版答案,计算机科学导论第12章参考答案
  10. python正则匹配日期2019-03-11_正则表达式验证日期(多种日期格式)——转载
  11. 硬盘GPT和MBR分区表转换方法
  12. 如何下载VMWare虚拟机如何安装VMWare详细教程
  13. onkeyup+onafterpaste
  14. 关于oppo和vivo这两年强势崛起的反思
  15. 关于概率论和模糊数学的区别
  16. 独家 | 当热钱不再涌动——2019人工智能行业冷暖观察
  17. UBER司机奖励政策
  18. 时间序列分析--手算时间序列
  19. 【强化学习】 Q-Learning
  20. RedisTemplate操作redis时,key值出现\xac\xed\x00\x05t\x00前缀

热门文章

  1. python制作闯关答题软件_教你轻松使用优考试制作互动闯关答题
  2. 学习用康虎云报表模板设计器制作好用的报表(2)
  3. 富文本编辑器 数据 转义 简单 高效
  4. 关于建立公司内部交流分享活动的一点尝试
  5. jsp+mysql汽车维修管理系统的设计与开发_4S店汽车维修管理系统的分析与设计(JSP+MySQL)...
  6. SEO优化友情链接之锚文本无敌
  7. AMBA-AHB与APB
  8. 《WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册》
  9. 模板模式(Template)-水泥厂订货
  10. 2022-2027年中国生物质成型燃料(BMF)市场规模现状及投资规划建议报告