我正在向 JaxRs 注释服务添加 Swagger 注释。
我有以下内容:
(^{
GET true
Path "/{who}"
ApiOperation {:value "Get a hello" :notes "simple clojure GET"}
Produces ["text/plain; charset=UTF-8"]
ApiResponses {:value [(ApiResponse {:code 200 :message "yay!"})]}
}
如果我反编译生成的类,注释如下所示:
@ApiResponses({@com.wordnik.swagger.annotations.ApiResponse(code=200L, message="yay!")})
@Produces({"text/plain; charset=UTF-8"})
@ApiOperation(value="Get a hello", notes="simple clojure GET")
@Path("/{who}")
@GET(true)
注意在第一个注释代码= 200L
在运行时,这个值必须是一个 int,我不知道如何做到这一点
如果我尝试
ApiResponses {:value [(ApiResponse {:code (int 200) :message "yay!"})]}
我收到编译错误(使用 maven swagger 插件)
Exception in thread "main" java.lang.ClassCastException: clojure.lang.Var cannot be cast to java.lang.Class, compiling:(pocclj/resourceclj.clj:14)
我努力了
(def success (int 200))
...
ApiResponses {:value [(ApiResponse {:code success :message "yay!"})]}
这会产生此编译错误:
Exception in thread "main" java.lang.IllegalArgumentException: Unsupported annotation value: success of class class java.lang.Integer, compiling:(pocclj/resourceclj.clj:14)
我尝试了很多其他的东西(deref 等),但找不到秘方。
我对clojure相当陌生,并且迫切需要一些帮助。
提前致谢
马丁