OpenApi Swagger(C#):如何阻止必填字段未填时调用端点?
解决Swagger必填路径参数未禁用执行按钮的问题
你遇到的问题是因为仅设置Required=true还不够,Swagger UI的表单校验需要参数同时具备完整的Schema定义才能正确触发禁用逻辑。按以下步骤修改即可:
给参数添加Schema定义
修改你在文档过滤器中的代码,为itemId参数补充Schema配置,指定参数的类型(根据实际业务调整,比如字符串、整数等):myOperation.Parameters.Add(new OpenApiParameter() { Name = "itemId", In = ParameterLocation.Path, Description = "Item Id.", Required = true, Schema = new OpenApiSchema { Type = "string" // 示例为字符串类型,可改为"integer"、"guid"等对应类型 } });重启应用并清理缓存
修改代码后重启你的API服务,同时清理浏览器缓存,确保Swagger文档重新加载最新的参数定义。
这样修改后,Swagger UI就能正确识别该参数的必填规则,在未填写itemId时自动禁用执行按钮,避免出现后续的JavaScript错误。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

