我正在尝试使用swagger& amp录制akka-http API。 swagger-akka-http。 This blog post给了我一个良好的开端,但现在我陷入困境,试图记录API使用基本身份验证的事实。
我所拥有的是:
@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
config
在yaml
中,这可能如下所示:
securityDefinitions:
basicAuth:
type: basic
description: HTTP Basic Authentication.
但是,我没有yaml
。除了通过注释,我也无法控制生成的.json
。
IIUC,提及auth方法的正确位置是authorizations
或Api
注释的ApiOperation
参数。此参数应包含Authorization
注释数组。
每个value
注释的Authorization
属性应该引用SecurityDefinitionObject
但我不知道如何使用注释定义此SecurityDefinitionObject
。
Authorization
注释不应该单独使用,如果是,则会被忽略。
我有什么遗漏的吗?我是否需要额外的yaml
或json
文件以及其他声明,如果我这样做,我该把它放在哪里?更多的东西呢?
谢谢
修改
使用0.7.2-SNAPSHOT,正在生成basicAuth数组:
paths: {
/foos: {
get: {
security: [
{
basicAuth: [ ]
}
],
现在唯一的问题是让Swagger UI正确解释它并在示例中使用auth。 AFAIK,如果您需要在UI中使用基本身份验证,则必须自行添加,如here所述
答案 0 :(得分:2)
我目前维持swagger-akka-http。
代码几乎是swagger.io代码库的一个很薄的包装。
@Api和@ApiOperation注释支持授权参数。
@Api(value = "/myApi", description = "My API", produces = "application/json",
authorizations=Array(new Authorization(value="basicAuth")))
我从未使用过此功能,但也许您可以尝试一下。