Using server-implementation specific details (e.g., Future, Request argument) is not ideal and handling these details is a bit tricky for code generators. We should generate server implementation base classes from RPC interfaces instead.
RPC interface:
@RPC
trait MyApi {
def hello(user:User): Message
}
Generated stub:
trait MyApiStub {
def hello(user:User, context:HttpRequestContext): Future[Message]
}
The context object may have HttpMessage.Request and a handler for http2 streaming.
Options:
- Future type to use (none, twitter Future, Scala Future, or
F[_])
Related:
Using server-implementation specific details (e.g., Future, Request argument) is not ideal and handling these details is a bit tricky for code generators. We should generate server implementation base classes from RPC interfaces instead.
RPC interface:
Generated stub:
The context object may have HttpMessage.Request and a handler for http2 streaming.
Options:
F[_])Related: