我有一个API,它允许传入任何任意路径,例如所有这些:
/api/tags
/api/tags/foo
/api/tags/foo/bar/baz
是有效路径。我试着这样描述:
/tags{tag_path}:
get:
parameters:
- name: tag_path
in: path
required: true
type: string
default: "/"
但是https://generator.swagger.io在路径中编码斜线,所以不起作用。那么有没有办法用Swagger来描述我的API呢?
如果您使用的是Connexion之类的框架,它很可能确实支持通配符路径参数(即使它不在OpenAPI规范中)。
这是Connexion的一个例子。
paths:
/pages/{path}:
get:
# (...)
parameters:
- name: "path"
in: path
description: "Remainder of path, including slashes."
schema:
type: string
format: path
不同之处在于添加了格式:路径
。
从OpenAPI 3.1开始,这是不受支持的,我不得不求助于一种解决方法。
如果我有一个路径 /tags{tag_path}
并且我输入类似这样的内容tag_path
:/foo/bar
,那么实际的查询请求 URL 将是:/tags/foo/bar
。因此,我只是在我的后端添加了对此的支持:/tags*
url 的endpoint处理程序对路径(即 /foo/bar)进行解码,然后它再次变为 /foo/bar
。
是的,一个黑客,但它有效,总比没有好。在我的例子中,标签名称不能包含/
字符,所以没有冲突。当然,您的里程可能会有所不同。
在一个由Swagger-UI渲染的API规范中,同一个路径是否可能出现不止一次? 我应该创建单独的api规范并加载两个Swagger-UI实例吗?处理这件事的最好方法是什么? 例如,我有一个名为/oauth/token的endpoint,我想用一组oauth Authorization Code流的参数对其进行记录,用一组不同的参数对client_credentials流的同一个endpoint/
我正在使用http://editor.swagger.io为了设计API,我遇到了一个我不知道如何解决的错误: 我以类似的方式定义了其他终结点,并且没有收到此错误。我想知道我是否对缩进或未闭合的引号有一些问题,但情况似乎并非如此。谷歌似乎也没有提供任何有用的结果。 有什么提示吗?
问题内容: 我正在运行应该执行方法的Shell脚本: 在这一点上,我得到这个异常: 这是因为弹簧罐位于另一个文件夹中。所以我更改了脚本: 但是,使用此脚本无法找到com.example.ClassTest。关于这个问题有什么想法吗? 提前致谢 问题答案: Java类路径通配符扩展不常见。 从文档: 了解类路径通配符 类路径条目可以包含基本名称通配符,这被认为等效于指定目录中所有扩展名为.jar或.
我在GCP中配置了Kubernetes集群,如下所示, 进入。亚马尔 应用程序。亚马尔 默认后端。亚马尔 我的健康检查很好,负载平衡器已经启动并运行。我也可以点击默认后端。但是当我试着打的时候, 我在404状态码的postman中发现以下错误, 但是API在服务中可用,当我将服务从NodePort切换到LoadBalancer时,我可以使用LoadBalancer IP访问API。有人能帮我解决这
是否可以使参数验证集与通配符一起工作? 我希望在位置接受0-100。 错误消息: 无法验证参数“variable”得参数.参数“6.1.1.0”不属于集合“6.1...”由ValidateSet属性指定。提供一个集合中的参数,然后重试该命令。+CategoryInfo:InvalidData:(:)[],ParentContainsErrorRecordException+FullyQualifi
4.4.1 使用路径通配符加载Resource 前面介绍的资源路径都是非常简单的一个路径匹配一个资源,Spring还提供了一种更强大的Ant模式通配符匹配,从能一个路径匹配一批资源。 Ant路径通配符支持“?”、“”、“*”,注意通配符匹配不包括目录分隔符“/”: “?”:匹配一个字符,如“config?.xml”将匹配“config1.xml”; “*”:匹配零个或多个字符串,如“cn//con