当前位置: 首页 > 知识库问答 >
问题:

如何将swagger与akka-http一起使用

亢仰岳
2023-03-14

我正在尝试使用swagger记录akka-超文本传输协议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的例子

在< code>yaml中,可能是这样的:

securityDefinitions:
  basicAuth:
    type: basic
    description: HTTP Basic Authentication.

但是,我没有yaml。除了通过注释之外,我也不能控制生成的.json

在IIUC中,提及auth方法的正确位置是ApiAPIOoperationannotation的authorizations。此参数应包含授权注释的数组。

每个<code>授权<code>注释的<code>值

但是我不知道如何使用注释定义这个< code > SecurityDefinitionObject 。

Authoration注释不应该独立使用,如果是,则将被忽略。

我错过了什么吗?我是否需要一个额外的 yamljson 文件,其中包含其他声明,如果我这样做,我应该把它放在哪里?还有更多别的吗?

非常感谢。

编辑

使用 0.7.2-SNAPSHOT,正在生成的基本身份验证数组是这样的:

paths: {
    /foos: {
        get: {
        security: [
            {
            basicAuth: [ ]
            }
        ],

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

共有1个答案

张玺
2023-03-14

我目前维护swagger-akka-http。

代码几乎是代码库的一个薄包装swagger.io。

@Api和@APIOoperation注释支持授权参数。

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

@Api(value = "/myApi", description = "My API", produces = "application/json", 
authorizations=Array(new Authorization(value="basicAuth")))

我从未使用过这个功能,但也许你可以尝试一下。

 类似资料:
  • 我不确定这是否是正确的方法,或者即使这是一个好的方法,或者我是否应该使用一个actor与路由交互,使用ask模式,然后在actor内部流式处理所有内容。 有什么想法吗?

  • 我有一个正常工作的普通Hapi应用程序,我计划迁移到Swagger。我使用官方说明安装了swagger-node,并在执行“swagger项目创建”时选择了Hapi。但是,我现在很困惑,因为似乎有几个库用于集成swagger-node和hapi: < li>hapi-swagger:最受欢迎的一款 < Li > hapi-waggered:有点流行 < li>swagger-hapi:不受欢迎且不

  • 问题内容: 我想使用standard从node.js发出传出HTTP调用。但是我无法直接从网络访问远程服务器,需要通过代理。 如何告诉node.js使用代理? 问题答案: 关于使用HTTP代理,Tim Macfarlane 的答案很接近。 使用HTTP代理(用于非安全请求)非常简单。您连接到代理并正常发出请求,只是路径部分包含完整的url,并且主机标头设置为您要连接的主机。 Tim与他的回答非常接

  • 我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理