红联Linux门户
Linux帮助

form-binder 0.8.0发布,微型数据绑定和校验框架

发布时间:2014-11-03 11:08:24来源:红联作者:empast
这次改动比较大,所以跳过了 0.7.0,直接到了 0.8.0.

调整的方向是简化接口、统一体验。展开点说,就是:

合并`BulkPreProcessor`/`PreProcessor`。不像原来的 BulkPreProcessor 只能用于 FormBinder,PreProcessor 只能用于 field mapping,现在的 PreProcessor (接口) 可以通用于 FormBinder 和 field/group mapping

修改扩充`Constraint`。原来的 Constraint 只能用于 field mapping,现在的 Constraint (接口)可以通用于 FormBinder 和 field/group mapping

不过也没有丢弃`Bulk`和`single`的区分,毕竟有些 constraint/pre-processor 只接受 one input string,有些只接受 multiple input strings,所以增加了标记性 trait `InputMode`帮助扩展开发者用来指定和限制

当然还有很多其他的调整和改动,具体请看 Release Notes。在这我就不重写一遍了。

总的来说,这次的调整给普通用户/开发者和扩展开发者,都带来了极大简化和便利,虽然这种简化和便利需要自己作出一些调整来适应。

还好,尽管内部改造进行得轰轰烈烈,对外的影响还是不那么大的。

以下是一些受影响的地方以及相关修改建议:

对普通用户/开发者,

1)`pipe_:` 重命名为`>-:`

建议:应用代码中简单重命名即可

2)constraint `expandJsonData` 重命名为`expandJsonString`,并对参数有调整

建议:原来的应用代码可能是
expandJsonData("body", Some(""))pipe_: FormBinder(messages)
现在应改为
expandJsonString(Some("body"), Some(""))>-: FormBinder(messages)

阅读源码的同学应该能发现,重构后的代码比原来更清晰、更容易扩展了。

更多的细节,请查阅项目文档和源码。

软件详情:https://github.com/tminglei/form-binder/releases/tag/v0.8.0

下载地址:https://github.com/tminglei/form-binder/releases

来自:开源中国社区
文章评论

共有 0 条评论