我试图使用swagger & 斯威格-阿克卡-http记录一个akka-http。这篇博客文章给了我一个好的开始,但是现在我被困住了,试图记录这个API正在使用basic auth这一事实。
我拥有的是:
@Path("/foo")
@Api(value = "/foo", produces = "application/json")
class FooService ...
@ApiOperation(value = "Get list of all foos", nickname = "getAllFoos", httpMethod = "GET",
response = classOf[Foo], responseContainer = "Set")
def getAll: Route = get {...这会生成一个json,我可以在swagger UI中查看它。但是,由于缺少auth选项,我不能使用生成的示例。
我没有发现任何使用swagger-akka-http的例子,只有一些使用yaml配置。
在yaml中,这可能是这样的:
securityDefinitions:
basicAuth:
type: basic
description: HTTP Basic Authentication.但是,我没有yaml。除了通过注释,我也无法控制生成的.json。
IIUC,提到auth方法的正确位置是Api或ApiOperation注释的ApiOperation参数。这个param应该包含一个Authorization注释数组。
每个value注释的Authorization属性应该引用一个SecurityDefinitionObject
但是我不知道如何使用注释来定义这个SecurityDefinitionObject。
Authorization注释不应该单独使用,如果是独立的,则会被忽略。
我错过了什么吗?我是否需要一个附加声明的额外yaml或json文件,如果需要,我应该把它放在哪里?更多的东西?
谢谢
编辑
对于0.7.2快照,生成的basicAuth数组如下所示:
paths: {
/foos: {
get: {
security: [
{
basicAuth: [ ]
}
],现在唯一的问题是让Swagger正确地解释它并在示例中使用auth。AFAIK,如果您需要UI中的基本auth,您必须自己添加它,就像这里描述的那样
发布于 2016-07-15 21:58:45
我目前维护斯威格-阿克卡-http。
该代码在swagger.io代码库中几乎是一个薄包装器。
@Api和@ApiOperation注释支持授权param。
@Api(value = "/myApi", description = "My API", produces = "application/json",
authorizations=Array(new Authorization(value="basicAuth")))我从来没有使用过这个功能,但也许您可以尝试一下。
https://stackoverflow.com/questions/38267272
复制相似问题