2 回答
TA贡献1820条经验 获得超10个赞
您可以定义单独的注释:
annotation class MyOwnApi(
val openApi: OpenApi = OpenApi(
summary = "",
description = "Lists all customers",
path = "customers",
queryParams =
// ...........
// ...........
// etc
)
)
annotation class UserOpenApi(
val openApi: OpenApi = OpenApi(
summary = "Something",
description = "Lists all users",
// ...........
// ...........
// etc
)
)
优点:
代码分离
可重用的注释类
您甚至可以创建一个构建器类并测试它
缺点:
令人困惑
注解不能继承、扩展类或实现接口
如果直接检查类/对象,可能无法
@OpenApi
实现或需要复杂的代码更改。在这种情况下,您将需要另一个反射搜索来从字段中提取注释!
TA贡献1775条经验 获得超11个赞
好的,您想要的是@OpenApi将文档与 REST 处理程序代码分开。您可以通过删除实现而不是删除注释来做到这一点。
因此,在所有注释与 REST 处理程序代码混合的当前文件中@OpenApi,您可以调用辅助函数,如下所示:
@OpenApi(
summary = "",
description = "Lists all customers",
path = "customers",
queryParams =
// ...........
// ...........
// etc
)
override fun handle(context: Context) {
handleGetCustomers(context)
}
然后您将所有 REST 处理程序放入该文件的顶部或另一个文件中以进行更多隔离,这样您就可以在它们之间滚动,而不会受到注释的干扰@OpenApi:
// Collected at the top of the file, or in a separate file
fun handleGetCustomers(context: Context) {
// body of the REST handler
}
然后,您可以轻松地在 REST 处理程序代码之间滚动,而不会受到@OpenApi噪音的困扰。
请注意,您应该使用Android Studio 的“转到” -> “定义”功能,以避免滚动到handleGetCustomers().
添加回答
举报