使用 jwk.Key 作为 swagger 响应类型时不受支持的类型 "invalid type"

unsupported type "invalid type" when using jwk.Key as swagger response type

我有以下端点

package token

import (
    "crypto/rsa"
    "github.com/dhis2-sre/im-user/pkg/config"
    "github.com/dhis2-sre/im-user/pkg/token/helper"
    "github.com/gin-gonic/gin"
    "log"
    "net/http"
)

func ProvideHandler(config config.Config) Handler {
    publicKey, err := config.Authentication.Keys.GetPublicKey()
    if err != nil {
        log.Fatalln(err)
    }

    return Handler{
        publicKey,
    }
}

type Handler struct {
    publicKey *rsa.PublicKey
}

// Jwks godoc
// swagger:route GET /jwks Jwks
//
// Return a JWKS containing the public key which can be used to validate the JWT's dispensed at /signin
//
// responses:
//   200: Jwks
//   415: Error
//   500: Error
func (h *Handler) Jwks(c *gin.Context) {
    jwks, err := helper.CreateJwks(h.publicKey)
    if err != nil {
        _ = c.Error(err)
        return
    }

    c.JSON(http.StatusOK, jwks)
}

连同以下 swagger 响应定义

package token

import "github.com/lestrrat-go/jwx/jwk"

// swagger:response Jwks
type _ struct {
    //in: body
    _ jwk.Key
}

但是当我尝试使用以下命令生成规范时

swagger generate spec -o swagger/swagger.yaml -x swagger/sdk --scan-models

我收到以下错误

unsupported type "invalid type"

如果我使用 interface{} 而不是 jwk.Key 我可以生成没有错误的规范,但显然那不是我想要的类型

升级到版本 v0.29.0 解决了问题