首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在akka-http & basic auth中使用swagger

如何在akka-http & basic auth中使用swagger
EN

Stack Overflow用户
提问于 2016-07-08 12:55:47
回答 1查看 3.6K关注 0票数 0

我试图使用swagger & 斯威格-阿克卡-http记录一个akka-http。这篇博客文章给了我一个好的开始,但是现在我被困住了,试图记录这个API正在使用basic auth这一事实。

我拥有的是:

代码语言:javascript
复制
@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中,这可能是这样的:

代码语言:javascript
复制
securityDefinitions:
  basicAuth:
    type: basic
    description: HTTP Basic Authentication.

但是,我没有yaml。除了通过注释,我也无法控制生成的.json

IIUC,提到auth方法的正确位置是ApiApiOperation注释的ApiOperation参数。这个param应该包含一个Authorization注释数组。

每个value注释的Authorization属性应该引用一个SecurityDefinitionObject

但是我不知道如何使用注释来定义这个SecurityDefinitionObject

Authorization注释不应该单独使用,如果是独立的,则会被忽略。

我错过了什么吗?我是否需要一个附加声明的额外yamljson文件,如果需要,我应该把它放在哪里?更多的东西?

谢谢

编辑

对于0.7.2快照,生成的basicAuth数组如下所示:

代码语言:javascript
复制
paths: {
    /foos: {
        get: {
        security: [
            {
            basicAuth: [ ]
            }
        ],

现在唯一的问题是让Swagger正确地解释它并在示例中使用auth。AFAIK,如果您需要UI中的基本auth,您必须自己添加它,就像这里描述的那样

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 21:58:45

我目前维护斯威格-阿克卡-http

该代码在swagger.io代码库中几乎是一个薄包装器。

@Api和@ApiOperation注释支持授权param。

https://github.com/swagger-api/swagger-core/blob/master/modules/swagger-annotations/src/main/java/io/swagger/annotations/Api.java

代码语言:javascript
复制
@Api(value = "/myApi", description = "My API", produces = "application/json", 
authorizations=Array(new Authorization(value="basicAuth")))

我从来没有使用过这个功能,但也许您可以尝试一下。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38267272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档