`SwaggerRequestExample` 被忽略

2024-04-30

当我向 API 添加 swagger 时,我想要获取默认值和响应示例。我添加了 NuGet 包并尝试遵循本教程 https://mattfrear.com/2016/01/25/generating-swagger-example-requests-with-swashbuckle/. The SwaggerResponseExample属性工作正常,但SwaggerRequestExample似乎只是被忽略了。

我的行动定义如下

[SwaggerRequestExample(typeof(int), typeof(PersonExamples.Request))]
[SwaggerResponseExample(200, typeof(PersonExamples.Response))]
/* more attribute & stuff */
public IActionResult Get(int id) { /* blabla */ }

The PersonExamples类定义如下(删除了不相关的代码)

public class PersonExamples
{
    public class Request : IExamplesProvider
    {
        public object GetExamples() { return _persons.List().First().Id; }
    }

    public class Response : IExamplesProvider
    {
        public object GetExamples() { return _persons.List().First(); }
    }
}

这也是相关部分Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddSwaggerGen(conf =>
    {
        conf.SwaggerDoc(_documentationPrefix, new Info
        {
            Title = "Global",
            Version = "v0",
        });

        conf.OperationFilter<ExamplesOperationFilter>();

        var filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "Global.xml");
        conf.IncludeXmlComments(filePath);
    });

}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseSwagger(opt =>
    {
        opt.RouteTemplate = "{documentName}/swagger.json";
    });

    if (env.IsDevelopment())
    {
        app.UseSwaggerUI(conf =>
        {
            conf.SwaggerEndpoint($"/{_documentationPrefix}/swagger.json", "DataService API");
            conf.RoutePrefix = "doc/swagger";
        });
    }
}

当我运行我的项目并转到 swagger.json 页面时,我注意到响应示例已正确编写,但请求示例却找不到。经过进一步调试,我注意到断点放置在PersonExamples.Response.GetExamples调用页面时会被命中,但是放在PersonExamples.Request.GetExamples方法不会。所以我相信SwaggerRequestExample属性从不调用该方法,甚至可能不会调用其本身。

我是否不当使用了标签?为什么它从来没有被调用过?


我知道这个问题已经很老了,但是 Swagger Examples 不支持 GET 请求参数(查询参数)。仅当参数位于请求正文中时才有效(例如:POST 请求)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`SwaggerRequestExample` 被忽略 的相关文章

随机推荐

  • 使用 VS Code 进行 Flutter,无法找到 Android Studio 可执行文件

    我重新安装了 Flutter 和 Android Studio 我已经安装了 Java 和 SDK 库 并且可以从 VS Code 运行该应用程序 但是当我尝试在 Android Studio 中打开 Android 模块时 我得到 无法找
  • 如何获取以太坊账户余额?

    如何以编程方式发现以太坊区块链上给定账户中有多少 ETH 在网上 不是程序化的 而是为了完整性 如果您只想获取帐户或合约的余额 您可以访问http etherchain org http etherchain org or http eth
  • 使用 groovy 向 jenkins 作业添加附加参数

    我们有一组 groovy 脚本 用户可以在他们的 jenkins 文件中调用它们来设置一些常见的作业属性 但是 我们无法弄清楚在进行此更新时如何保留其现有参数 我们的常规代码片段 def newParamsList def newbool
  • ios 如何验证输入的电话号码是否确实是用户的电话号码?

    我见过一些不同的应用程序 Snapchat whatsapp 等 要求用户输入电话号码 然后 系统会向用户发送一条带有代码的短信 以验证该号码是否确实是他们的号码 然后他们就可以看到哪些用户的地址簿联系人也拥有该应用程序 我了解所有这些是如
  • DateTime 以毫秒为单位的表示形式?

    我有一个 SQL 服务器时间戳 需要将其转换为自 1970 年以来以毫秒为单位的时间表示形式 我可以使用纯 SQL 来执行此操作吗 如果没有 我已将其提取到DateTimeC 中的变量 是否有可能得到这个的毫秒表示 Thanks Teja
  • 如何在 Switch/SwitchCompat 按钮中设置宽度和轨道文本并实现此结果? (附有图片和 GIF)

    我需要在我的应用程序中实现一个像这样的按钮 我使用了 SwitchCompat 按钮 但我最接近的是这一点 有两个主要问题 1 当屏幕尺寸发生变化时 按钮的宽度无法正确调整 可绘制对象被切断 变得太小等 宽度正确占据父视图 包围它的小型线性
  • C# 中是否存在异步正则表达式?它们对我的情况有帮助吗?

    我的应用程序使用正则表达式并行搜索许多文件 await Task WhenAll filePaths Select FindThings 代替FindThings 它花费大部分时间执行正则表达式搜索 因为这些文件的大小可能有数百MB sta
  • 如何从 Dart 中的 Uint8List 读取 16 位 int?

    我有一个二进制数据存储在 Uint8List 中 我想从该列表中读取一个 16 位 int 有什么方便的方法可以帮助解决这个问题吗 摘自我和同事的对话 您可以使用 ByteData 类 var buffer new Uint8List 8
  • 如何从类中排除某些字符?

    假设我想匹配一个 单词 字符 w 但排除 或匹配空白字符 s 但排除 t 我怎样才能做到这一点 使用包含 W 或 S 的否定类 W anything that s not a non word character and not S t a
  • 我需要在 header("Location: http://localhost/..."); 之后使用 exit 吗?

    我正在创建一个脚本来验证表单 并且我问自己一个问题 当我使用标头 参见下面的示例 时 我需要立即使用 exit 吗 我的意思是 使用 header 是否也意味着它默认退出 因此我不需要使用命令 exit cancel button clic
  • Vagrant 的端口转发不起作用[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在最后遇到了一个小问题入门指南vagrant http vagrantup com docs getting started ports html
  • 可滚动 Turbo 表中的 PrimeNG 过滤器下拉问题

    在 prime ng Turbo Table 中 当我们将过滤器下拉列表放入表内的可滚动表下拉列表中时 没有可滚动表下拉菜单就完美了 这工作完美 https i stack imgur com 16vjy png 但是当可滚动表格时 下拉菜
  • gdi+ 中的半色调效果

    我该如何去模仿this http www juicybitssoftware com halftone GDI 中的半色调效果 它几乎看起来像弗洛伊德 斯坦伯格 http en wikipedia org wiki Floyd E2 80
  • Android TextView 更改文本大小后不调整大小

    我有一个ListView对该行进行一些自定义布局 一张图像 然后使用两个TextView在垂直方向上LinearLayout 参见下面的代码 我的问题是 当我动态更改文本大小时 在getView的方法Adapter 文字大小确实改变了 但是
  • Java中StringBuilder如何逆向工作?

    我正在尝试解决这个leetcode问题https leetcode com problems palindrome linked list https leetcode com problems palindrome linked list
  • java-websocket的WebSocketServer使用什么草案?

    我无法从WebSocketServer java源码 https github com TooTallNate Java WebSocket blob master src main java org java websocket serv
  • 生成实体密钥

    我第一次对 Entity Framework 4 感到失望 事实证明 当 SQL CE 与 EF4 一起使用时 不支持自动生成主键 http social msdn microsoft com forums en US sqlce thre
  • 二分图中最小顶点覆盖算法

    我正在尝试找出一种算法来查找二分图的最小顶点覆盖 我正在考虑一个解决方案 将问题减少到二分图中的最大匹配 众所周知 可以使用从 bip 创建的网络中的最大流量来找到它 图形 最大匹配 M 应确定最小匹配 顶点覆盖 C 但我无法处理选择顶点来
  • 关于 JavaScript for() 循环巫毒

    在相当长的一段时间里 我一直有这样的印象 for循环可能存在solely采用以下格式 for INITIALIZER STOP CONDITION INC DEC REMENTER CODE 然而 这是最绝对事实并非如此 看看这个 Java
  • `SwaggerRequestExample` 被忽略

    当我向 API 添加 swagger 时 我想要获取默认值和响应示例 我添加了 NuGet 包并尝试遵循本教程 https mattfrear com 2016 01 25 generating swagger example reques