validation - UUID 验证从 oapi-coden 生成的验证器返回 500 错误
问题描述
我正在使用 deepmap/oapi-codegen 从 openapi 3.0.3 规范生成 chi-server,其中大部分工作正常,但我遇到了 UUID 验证问题。我已经定义了这样的路径参数(不是完整的定义):
openapi: "3.0.3"
info:
title: "Example"
description: "Sites API"
version: "0.0.3"
paths:
/sites/{siteId}:
parameters:
- in: path
name: siteId
required: true
schema:
type: string
format: uuid
生成的验证器似乎可以正确识别无效的 UUID,但如果 UUID 无效,则坚持抛出 500 错误。查看验证代码,似乎它可能与上游问题有关,但由于我在 Go 世界中是全新的,我不完全确定我是否正确遵循流程。
这是设置 chi-router 的代码:
swagger, err := Openapi.GetSwagger()
if err != nil {
s.logger.Error().Msg("Error loading swagger spec.")
}
swagger.Servers = nil
router := chi.NewRouter()
router.Use(middleware.OapiRequestValidator(swagger))
Openapi.HandlerFromMux(s.api, router)
api.Server = &http.Server{
Handler: router,
Addr: fmt.Sprintf("0.0.0.0:%s", config.Port),
}
有没有人看到这个问题?如果是这样,是否有解决方法/解决方法?我在我的代码中忘记了一些明显的东西吗?
解决方案
推荐阅读
- mysql - 我刚刚在查询中得到了一个错误语法
- django - 在具有基于类的视图的模板中显示 ForeignKey
- facebook - Instagram 新客户注册已禁用
- mysql - SQL 代替插入触发器
- ruby - Faraday::ConnectionFailed 的意外行为
- python-3.x - Selenium 只加载页面上找到的一半元素
- scala - 如何在 ZIO 中实现不使用潜在大量堆空间的循环
- php - PHP - 可以在所需脚本中获取所需脚本的魔术常量 __FILE__ 吗?
- python - 在不同的数据帧上应用函数
- micronaut - 在 Micronaut http 方法(@Get、@Post、..)中将自定义对象绑定为参数