优点是和 swagger 集成的比较好,文档和代码能保持比较好的一致性。当然对于一些特殊业务,或者复杂的 query 查询,还是免不了要写一些额外的文档。不过在团队规模很小的情况下,这点问题通过沟通就可以解决了。
最初用的时候可能会不习惯这样的写法,因为 controller 层的代码夹在一大堆的 desc 和 params 声明之间,看起来非常难受。我现在的做法是每个 desc 之间空开三行,在 params 和 action 代码之间添加用于视觉定位的标志性注释。这样在找一个 action 的代码时,没有这么不舒服。其次是尽量把复杂一点的逻辑放在 helpers 里,action 里只保留少数核心逻辑。稍微适应几天,慢慢会发现 grape 还是有它自己优雅的地方的。