文档无法理解registerRestInterface、registerWebInterface和RestInterfaceClient之间的区别。
它们都可以按类生成方法。但我不明白什么时候该用一个,什么时候该另一个。
理解区别的关键是要认识到vibe.web.rest
和vibe.web.web
是两个不同的模块,它们有不同的用例:
vibe.web.rest
- 用于无状态通信
- 需要定义一个抽象接口
- RestInterfaceClient可用于与其他Rest接口通信
- 可以从API接口生成JS客户端
- 可以向registerRestInterface注册
何时使用:
- 大型公共API
- API需要与他人共享
->使用示例
vibe.web.web
- 用于web服务
- 允许直接访问当前会话和请求上下文
- 根据请求提供许多便利功能(例如
redirect
) - 允许
@auth
(示例) - 可以向registerWebInterface注册
何时使用:web服务、小型API
->使用示例
我个人更经常使用vibe.web.web
,因为对于我的小项目来说,保持接口文件同步的开销是不值得的。此外,我喜欢在vibe.web.web
中方便地访问请求上下文和会话变量。事实上,我维护了一个drop-In fork,它添加了更多方便的功能(自动序列化到Json,自动路由/:param/基于方法params生成,…)