问题描述
Spring Boot-2.3.4.RELEASE
Springfox-swagger2-3.0.0
主要目标是添加用于授权的Spring Security自动生成方法的文档。登录方法是带有主体模式凭据{email:String,password:String}的POST。通常,问题与此处相同: Documenting Spring's login/logout API in Swagger
但是不建议使用其较新版本的Spring Fox和许多方法/构建器/方法。
这是我根据先前的示例得出的结果。
class formLoginOperations @Autowired constructor(apiDescriptionReader: ApiDescriptionReader?,apiModelReader: ApiModelReader?,modelSpecificationReader: ApiModelSpecificationReader,pluginsManager: DocumentationPluginsManager?)
: ApiListingScanner(apiDescriptionReader,apiModelReader,modelSpecificationReader,pluginsManager) {
@Autowired private val typeResolver: TypeResolver? = null
override fun scan(context: ApiListingScanningContext): Map<String,List<ApiListing>> {
val def: MutableMap<String,MutableList<ApiListing>> = super.scan(context)
val apis: LinkedList<ApiDescription> = LinkedList()
val operations: ArrayList<Operation> = ArrayList()
val apiListings: ArrayList<ApiListing> = ArrayList()
operations.add(OperationBuilder(CachingOperationNameGenerator())
.method(HttpMethod.POST)
.uniqueId("login")
.parameters(Arrays.asList(
ParameterBuilder()
.name("email")
.description("User email")
.parameterType(ParameterType.BODY)
.type(typeResolver!!.resolve(String::class.java))
.modelRef(ModelRef("string"))
.build(),ParameterBuilder()
.name("password")
.description("User password")
.parameterType(ParameterType.BODY)
.type(typeResolver.resolve(String::class.java))
.modelRef(ModelRef("string"))
.build()))
.summary("Log in") //
.notes("Here you can log in")
.build())
apis.add(ApiDescription("Auth","/api/login/","Authentication documentation","Auth api",operations,false))
apiListings.add(ApiListingBuilder(context.documentationContext.apiDescriptionordering)
.apis(apis)
.description("Custom authentication")
.build())
def.put("authentication",apiListings)
return def
}
}
所以我找不到一个主要的问题,例如如何添加带有主体参数的自定义操作或传递完整的api模型的示例或文档。 取消了OperationBuilder和ParameterBuilder中的parameters()方法。也许这是问题的主要原因。
我也尝试使用新的requestParameters和RequestParameterBuilder,但是它总是抛出NullPointerException
.requestParameters(Arrays.asList(
RequestParameterBuilder()
.name("email")
.description("User email")
.`in`(ParameterType.BODY)
.required(true)
.build()
我很乐意提供任何建议。 最好的问候。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)