当前位置:网站首页 > 技术博客 > 正文

生成openid



最小 API 提供内置支持,用于通过 包生成有关应用中终结点的信息。 通过视觉 UI 公开生成的 OpenAPI 定义需要第三方包。 有关在基于控制器的 API 中对 OpenAPI 的支持的信息,请参阅本文的 .NET 9 版本。

以下代码由 ASP.NET Core 最小 Web API 模板生成,并使用 OpenAPI:

 

在上述突出显示的代码中:

  • 将在下一部分中进行介绍。
  • :将应用配置为使用 API Explorer 发现和描述具有默认注释的终结点。 将 API Explorer 生成的匹配默认注释替代为 包中生成的注释。
  • 添加 Swagger 中间件。
  • `UseSwaggerUI` 启用 Swagger UI 工具的嵌入版本。
  • :终结点上的 用于链接生成,并被视为给定终结点的 OpenAPI 规范中的操作 ID。
  • 本文后面将介绍 。

ASP.NET Core 提供 包以与终结点的 OpenAPI 规范进行交互。 该包充当 包中定义的 OpenAPI 模型和 Minimal API 中定义的终结点之间的链接。 该包提供一个 API,用于检查终结点的参数、响应和元数据,以构造用于描述终结点的 OpenAPI 注释类型。

作为 PackageReference 添加到项目文件:

 

将 与 一起使用时,必须使用 6.4.0 或更高版本。 1.4.3 或更高版本必须用于在 调用中利用复制构造函数。

对终结点调用 会添加到终结点元数据。 此元数据可以:

  • 在 Swashbuckle.AspNetCore 等第三方包中使用。
  • 显示在 Swagger 用户界面或为定义 API 而生成的 YAML 或 JSON 中。
 

方法接受可用于修改 OpenAPI 注释的函数。 例如,在以下代码中,将说明添加到终结点的第一个参数:

 

操作 ID 用于唯一标识 OpenAPI 中的给定终结点。 扩展方法可用于设置供方法使用的操作 ID。

 

也可以直接在 OpenAPI 注释上设置 属性。

 

OpenAPI 支持使用标记对象对操作进行分类。 这些标记通常用于对 Swagger UI 中的操作进行分组。 可以通过调用具有所需标记的终结点上的 WithTags 扩展方法,将这些标记添加到操作中。

 

或者,可以通过 扩展方法在 OpenAPI 注释上设置 列表。

 

可以通过调用 扩展方法添加终结点摘要和说明。 在以下代码中,直接在 OpenAPI 注释上设置摘要。

 

在下面的示例中, 终结点从生成 OpenAPI 说明中排除:

 

若要将终结点标记为已过时,请在 OpenAPI 注释上设置 属性。

 

OpenAPI 支持提供从 API 返回的响应的说明。 最小 API 支持使用三种策略来设置终结点的响应类型:

  • 通过终结点上的 扩展方法
  • 通过路由处理程序上的 属性
  • 通过从路由处理程序返回

扩展方法可用于将 元数据添加到终结点。 如果未提供任何参数,则扩展方法将在 状态代码和 内容类型下为目标类型填充元数据。

 

在终结点路由处理程序中使用其实现中的 ,就可以自动包含终结点的响应类型元数据。 例如,以下代码通过在 状态代码和 内容类型下的响应,自动对终结点进行注释。

 

为可能返回 ProblemDetails 响应的终结点设置响应类型时,可以使用 扩展方法 或 向终结点的元数据添加相应的注释。 请注意,在 .NET 8 及更早版本中, 和 扩展方法不能与路由组一起使用。

如果上述策略之一未提供显式注释,则框架会尝试通过检查响应的签名来确定默认响应类型。 此默认响应是在 OpenAPI 定义中的 状态代码下填充的。

如果终结点可以在不同的方案中返回不同的响应类型,则可以通过以下方式提供元数据:

  • 多次调用 扩展方法,如以下示例所示:
  • 在签名中使用 ,在处理程序的正文中使用 ,如以下示例所示:
     

    联合类型声明路由处理程序返回多个 实现具体类型,并且实现 的其中任何一个类型都将参与终结点的元数据。

    联合类型实现隐式强制转换运算符。 通过这些运算符,编译器可以自动将泛型参数中指定的类型转换为联合类型的实例。 此功能增加了一个好处,即提供编译时检查,路由处理程序只返回声明它的结果。 尝试返回未声明为 泛型参数之一的类型会导致编译错误。

除了描述终结点返回的类型外,OpenAPI 还支持对 API 使用的输入进行注释。 这些输入分为两个类别:

  • 出现在路径、查询字符串、标头或 Cookie 中的参数
  • 作为请求正文的一部分传输的数据

框架根据路由处理程序的签名自动推断路径、查询和标头字符串中请求参数的类型。

若要定义作为请求正文传输的输入类型,请使用 扩展方法配置属性,以定义请求处理程序预期的对象类型和内容类型。 在以下示例中,终结点接受请求正文中的 对象,其预期内容类型为 。

 

除了 扩展方法外,参数类型还可以通过实现 接口来描述自己的注释。 例如,以下 类型添加一个注释,该注释需要具有 内容类型的请求正文。

 

如果未提供显式注释,则框架将尝试确定默认请求类型(如果终结点处理程序中有请求正文参数)。 推理使用以下启发法生成注释:

  • 通过 属性从窗体读取的请求正文参数使用 内容类型进行描述。
  • 所有其他请求正文参数均使用 内容类型进行描述。
  • 如果请求正文可为空,或者在 特性上设置 属性,则请求正文被视为可选。

最小 API 支持通过 Asp.Versioning.Http 包进行 API 版本控制。 使用最小 API 配置版本控制的示例请见 API 版本控制存储库。

  • 最小 API 中的身份验证和授权

  • 上一篇: java中的单例设计模式
  • 下一篇: geohm c
  • 版权声明


    相关文章:

  • java中的单例设计模式2024-11-12 20:30:04
  • php8 opcache2024-11-12 20:30:04
  • 三态与非门的三种状态2024-11-12 20:30:04
  • win10打开本地策略编辑器2024-11-12 20:30:04
  • html的表单2024-11-12 20:30:04
  • geohm c2024-11-12 20:30:04
  • 分配网络流量的软件2024-11-12 20:30:04
  • mysql 左连接 右连接2024-11-12 20:30:04
  • python菜鸟教程32024-11-12 20:30:04
  • 引用数据类型 java2024-11-12 20:30:04