airframe
airframe copied to clipboard
airframe-rpc: Support setting default method parameter for the generated RPC clients
@RPC
trait MyAPI {
// Default argument
def hello(message:String = "world"): String
}
If we have this RPC interface, currently the generated client doesn't populate the default parameter ("hello").
A workaround is wrapping method arguments with an object:
@RPC
trait MyAPI {
def hello(request:HelloRequest): String
}
case class HelloRequest(message: String = "world")
As setting default parameter requires copying Scala code from API to client side code, it's not recommended in general. We should document that limitation #2169