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

在大摇大摆/大摇大摆UI中显示所需角色

柯景龙
2023-03-14

我们在我们的泽西应用程序中使用了@Role允许注释来限制用户对应用编程接口某些部分的访问。我们如何在SwaggerUI中显示这些信息?

到目前为止,我已经用@ApiOperation注释了方法以显示in/out参数,并尝试使用@Authorization/@AuthorizationScope,但我只为我们不使用的oauth2显示了它。最接近out case的是ApiKeyAuthDefinition,但它没有显示在UI中。

共有1个答案

袁赞
2023-03-14

我不熟悉您用来生成炫耀的框架,但在我使用的工具中,您必须在文档的“securityDefinitions”根节点中指定它,然后为使用它的每个方法引用该定义。

我的Swagger 2.0 JSON片段:

"securityDefinitions":{  
      "dapiOAuth2":{  
         "type":"oauth2",
         "description":"OAuth2 security protocol used by this API.  Only one of the scopes that are listed for an endpoint are required to make the request.",
         "flow":"application",
         "authorizationUrl":"https://login.roguecommerce.com/Login",
         "tokenUrl":"https://login.roguecommerce.com/sso/oAuth2/token",
         "scopes":{  
            "RegisteredUser":"Assigned to users of an application if they are registered.",
            "Admin":"Assigned to the users of an application if they are an administrator. This role can only be granted by an existing administrator"
         }
      }
   }

以下是在路径中引用此securityDefinition的方式:

"paths":{  
      "/v1/apis":{  
         "post":{  
            "tags":[  
               "Apis"
            ],
            "operationId":"Apis_CreateApiFromSwagger",
            "consumes":[  
               "application/json",
               "text/json",
               "application/xml",
               "text/xml",
               "application/x-www-form-urlencoded"
            ],
            "produces":[  
               "application/json",
               "text/json",
               "application/xml",
               "text/xml"
            ],
            "parameters":[  
               {  
                  "name":"api",
                  "in":"body",
                  "required":true,
                  "schema":{  
                     "$ref":"#/definitions/DynamicApis.Services.Rest.Entities.Api"
                  }
               },
               {  
                  "name":"authorization",
                  "in":"header",
                  "required":true,
                  "type":"string"
               }
            ],
            "responses":{  
               "200":{  
                  "description":"OK",
                  "schema":{  
                     "$ref":"#/definitions/DynamicApis.Services.Rest.Entities.ApiBase"
                  }
               }
            },
            "deprecated":false,
            "security":[  
               {  
                  "dapiOAuth2":[  
                     "admin"
                  ]
               }
            ]
         }
      }
   }

希望这有帮助。

 类似资料:
  • 我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }

  • 有没有人用spring-data-rest配置了swagger。我知道swagger有DocumentationConfig类,它扫描所有spring-mvc请求映射。但是,如何将其用于spring-data-rest,因为没有定义显式的请求映射。非常感谢在这方面的任何帮助。此外,我还想知道,是否有其他支持Spring-Data-REST的文档框架。

  • 理想情况下,我们将有一个显示所有标记为public的控制器/方法的大摇大摆的页面,以及另一个显示所有endpoint的密码安全endpoint。这可能吗?

  • 给定以下架构定义(这是定义所需属性的有效方法):

  • 我想从spring boot 2中切换到Micronaut框架。而我也在为那些大摇大摆的场景而挣扎。 在spring boot 2项目中,我有以下依赖项: 和swaggreconfig.class: 它可以很好地启动swagger-ui和spring boot 2应用程序。 我应该向maven添加哪些依赖项,我应该创建哪些类来为Micronaut项目获得相同的结果?

  • 我想大摇大摆地发布一个json正文,就像这样: 目前,我有这样的定义: 但是数据是在URL中发送的。这里是Swagger提供的生成的curl: 我知道<code>查询</code>关键字不好,但我没有找到POST JSON正文的方法。我尝试了<code>formData</code>,但没有成功。