Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

网络编程 2025-03-13 10:33www.168986.cn编程入门

Asp.Net Core WebAPI中的Swagger:API隐藏与分组秘籍

大家好!今天我要和大家分享一些关于Asp.Net Core WebAPI使用Swagger时的技巧——如何隐藏和分组API。

一、为什么需要隐藏部分接口?

在使用Swagger作为API文档和测试工具时,我们经常会遇到一些内部使用的接口,例如与Consul结合时的健康检查接口和报警通知接口。这些接口可能出于方便而未被加密,因此需要隐藏起来,仅供内部开发者使用。

那为什么我们还要进行接口分组呢?

在前后端分离的项目中,随着业务的发展,接口数量可能会达到数百个。这时,区分哪些是框架接口、哪些是业务接口就显得尤为重要。为SwaggerUI的接口进行分组,可以帮助我们更清晰地管理和查找接口。

二、SwaggerUI的进阶使用:授权请求

对于某些需要授权的接口,我们需要在SwaggerUI中加入授权请求。这可以通过创建一个名为`HttpHeaderOperationFilter`的操作过滤器来实现。这个过滤器继承自`Swashbuckle.AspNetCore.SwaggerGen.IOperationFilter`接口,并实现`Apply`方法。

在这个过滤器中,我们首先检查操作是否已有参数,如果没有则创建一个新的参数列表。然后,我们尝试获取方法的反射信息,检查该方法是否标记为匿名访问或已授权。如果既没有标记为匿名访问也没有标记为已授权,则在参数列表中添加一个新的非主体参数,名称为“Authorization”,类型为字符串,并设置为必填项。描述部分提示用户输入Token的格式应为“bearer XXX”。这样,只有拥有正确Token的用户才能访问这些接口。

上一篇:性能优化之代码优化页面加载速度 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by