zoukankan      html  css  js  c++  java
  • Web API 约定

    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[] 参数指示无需显式匹配的剩余参数。
  • 相关阅读:
    使用Struts时,JSP中如何取得各个会话中的参数值?
    JUnit —— TestSuite 的使用
    如何修改 Ubuntu 的字符集?
    如何修改 VIM 制表符的空格数?
    最遥远的距离
    二分法求平方根(Python实现)
    Hadoop 学习之路之MapReduce原理
    JDK 1.8源码阅读 TreeMap
    JDK 1.8源码阅读 HashMap
    JDK 1.8源码阅读 HashSet
  • 原文地址:https://www.cnblogs.com/ouyangkai/p/12801724.html
Copyright © 2011-2022 走看看