如何确定传入的帖子数据的类型?

时间:2019-04-26 17:27:49

标签: vapor

我正在构建一个基于RPC的应用程序,因此传入的帖子数据将采用以下通用格式:

struct Message: Content {
   let function: String
   let parameters: ParameterValues
}

假设我有许多不同的消息类型,其中ParameterValues对于所有参数而言都是不同的,我如何确定已发送的消息类型,以便对其进行解码?我想我需要某种if / else树,但是如果解码失败,它将抛出并且永远不会传递第一个if。

if let message = request.content.decode(MessageOne) {
  // do something
} else if let message = request.content.decode(MessageTwo) {
  // do something else
}

有没有更好的方法来解决这个问题?

旁注我正在尝试实现一个通用协议来抽象参数类型,因此我没有大量重复的结构。因此,我们可以假设所有消息都遵循相同的协议。

谢谢 德里克

0 个答案:

没有答案