我们有一个如下所示的 kotlin 代码,我正在尝试使用 Javalin(3.12.0) 禁用 API 的选项方法,如下所示,但这会导致阻塞所有其他方法,例如 get 和 post。我在这里想念什么?
val app = Javalin.create {
it.defaultContentType = "application/json"
it.enableWebjars()
it.addStaticFiles("", Location.CLASSPATH)
it.enableCorsForAllOrigins()
it.dynamicGzip = true
}
app.options("/*") {ctx -> ctx.status(405)}
app.routes {
path("/auth") {
post("/login") {
Auth.doLogin(it)
}
get("/metrics") {
val results = getData()
it.json(results)
}
}
还有 2 个问题 1.想要使用下面的代码为 get APi 的 20 请求实施一个小时的速率限制
app.get("/") { ctx ->
RateLimit(ctx).requestPerTimeUnit(5, TimeUnit.MINUTES) // throws if rate limit is exceeded
ctx.status("Hello, rate-limited World!")
}
如何实现?
- 如何限制在 API 调用时显示的码头服务器版本?