如何整合与koa和joi的招摇?

我正在编写基于KOA框架的节点API。 为了validation,我更喜欢Joivalidation,并添加一个中间件。 现在我想整合Swagger 。 但我认为我编写了两次相同的代码部分(请求数据validation部分,一个在joivalidation中,另一个在swagger yaml文件中)。 请给我举一个例子,或者把swagger,koa和joi结合起来的最好方法。