我正在构建一个 API 并intercept(ApplicationCallPipeline.Call){}
用于在每次路由执行之前运行一些逻辑。我需要将数据从拦截()方法传递给被调用的路由,并通过call.attributes.put()
在拦截()中使用来设置数据,如下所示:
val userKey= AttributeKey<User>("userK")
call.attributes.put(userKey, userData)
并使用检索userDatacall.attributes[userKey]
。发生的情况是,call.attributes[userKey]
这只适用于我设置了属性的拦截()方法。它在我需要它的路线上不起作用。它把我扔了
java.lang.IllegalStateException: No instance for key AttributeKey: userK
我想知道是否以正确的方式做事