第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Echo Groups 無法使用 oapi-codegen 處理 OpenAPI 生成的代碼

Echo Groups 無法使用 oapi-codegen 處理 OpenAPI 生成的代碼

Go
婷婷同學(xué)_ 2022-10-17 10:12:46
我正在使用oapi-codegen生成我的服務(wù)器代碼并使用 Echo Labstack 作為服務(wù)器。當(dāng)我傳遞一個Group實(shí)例Openapi.RegisterHandlers而不是一個實(shí)例時,對于該組中的任何請求Echo,我總是會收到 400 錯誤:{"message":"no matching operation was found"}    swagger, err := Openapi.GetSwagger()    if err != nil {        fmt.Fprintf(os.Stderr, "Error loading swagger spec\n: %s", err)        os.Exit(1)    }    // Use oapi validation middleware to check all requests against the    // OpenAPI schema.    g := e.Group("/api", middleware.OapiRequestValidator(swagger))    Openapi.RegisterHandlers(g, &MyApi{})如果發(fā)送請求/api/foo,foo生成的服務(wù)器代碼中定義的 API 端點(diǎn)在哪里,我會收到 400 錯誤。如果我這樣做,/api/<some undefined api>我也會得到 400。如果我確實(shí)發(fā)送請求/baz,我會按預(yù)期得到 404,因?yàn)檫@不是定義的路線。如果我沒有將前綴傳遞給Group(),每個請求都會收到 400 錯誤。如果我使用,我會得到相同的行為RegisterHandlersWithBaseURL()
查看完整描述

1 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個贊

似乎有一個錯誤,如果您指定一個基本路徑,無論是對Group()函數(shù)還是對RegisterHandlersWithBaseURL(),OapiRequestValidator在檢查路由的請求路徑時,中間會忽略基本路徑。它使用 OpenAPI 規(guī)范中定義的路由,沒有基本路徑。為了解決這個問題,我重寫了inline.tmpl模板并修改了GetSwagger()函數(shù)以將其包含在底部:


func GetSwagger(pathPrefix string) (swagger *openapi3.T, err error) {

...

    var updatedPaths openapi3.Paths = make(openapi3.Paths)


    for key, value := range(swagger.Paths) {

        updatedPaths[pathPrefix + key] = value

    }


    swagger.Paths = updatedPaths

}

地圖中的關(guān)鍵Path是路線。我只是將基本路徑附加到每個鍵。


查看完整回答
反對 回復(fù) 2022-10-17
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號