zoukankan      html  css  js  c++  java
  • C#中string类型必填的诡异问题

    背景

    ASP.NETCore3.0项目,使用Swagger接口文档。

    之前的项目都是Swashbuckle.AspNetCore-5.0.0

    新项目想尝尝鲜,用最新版Swashbuckle.AspNetCore-5.6.3

    目前发现的新变更就是返回结果示例值的颜色,不同数据类型是不同颜色

    环境

    接口

    一个Get请求的接口,使用FromQuery方式,定义的入参类去接收参数

    入参类

    string类型和long?

     

    问题复现

    Swagger请求

    返回400的错误。在模型绑定时就已经被拦截,根本没有运行到接口的非空验证。

    POSTMAN请求

    返回400的错误。在模型绑定时就已经被拦截,根本没有运行到接口的非空验证。

    原因

    猜测

    因为使用了最新的Swagger组件,愚以为是新版本的问题。

    真的,为有这种想法感到羞愧。

    实际问题

    因为上面的猜测,随将一个旧项目的Swagger从5.0.0升级到5.6.3,

    但是没有发生这样的问题,

    所以还是我使用的问题。

    因为是模型的问题,所以想会不会是项目属性的设置问题,

    遂,对比老项目和问题项目的项目属性。

    终于发现了问题所在:项目属性->生成->可以为null

     git提交差异

    最终结果

    项目属性->生成->可以为null : 禁用

    结语

    回想一下,好像是在配置【取消显示警告】时候,鼠标滚动了把这个配置修改掉了。

    淦,这都什么问题,折腾我半天。

  • 相关阅读:
    【面试】Java基础
    GC
    【面试】JVM
    Spooling技术
    数据结构之 平衡二叉树
    二叉树应用
    LINUX设备驱动模型之class
    RTC(x86)
    微内核和单内核
    Linux内核的五大模块
  • 原文地址:https://www.cnblogs.com/masonblog/p/14134075.html
Copyright © 2011-2022 走看看