
在这个主题下发布应该没错吧。
零零总总写了有半年了,虽然现在并不是一个发布的好时机,但是想要先分享出来和大家伙交流一下想法。本来打算先在公司用起来的,不过最近公司没有什么新项目,老项目我也不想换框架了,人力物力呀…… 所以只在自己的个人项目下应用了,目前运转良好。
又是一个轮子,只不过有些不一样的地方。
首先,思想上它是完全面向 API 文档的。也许好多团队写文档会借助于 YAPI 这样的第三方工具,或者直接用 Postman 这样用用例来说话,再不济手写 Markdown. 我在框架里直接生成了 OpenAPI 的规格文档,在开发者实现接口的同时,文档就生成了。例如像下面这样定义一个接口,同时文档就能生成了:
route('/users', :post) .title('创建一个新用户') .params { param :user, type: 'object', using: UserEntity } .do_any { # 这里实现你的业务逻辑 ... } .if_status(201) { expose :user, type: 'object', using: UserEntity } 其次,这次将参数和返回值的写法统一起来了。像上面,我们只用了一个 UserEntity,就可以同时定义参数和返回值了,再也不用写两遍了。你的 UserEntity 内部可能是这样写的:
class UserEntity property :id, type: 'integer', param: false # 只返回 property :password, type: 'string', render: false # 只用作参数 property :name, type: 'string, property :age, type: 'integer' end 其他的功能还有很多,就不想一一列举了。想进一步了解的,可以去看 GitHub 仓库:
这个框架适合纯 API 后端的场景,即前后端分离。也比较适合团队,基本用一种固定的写法构建 API. 重点是生成对应的文档,前后端不再扯皮(你的文档是这么定义的,怎么你返回的数据是长这样啊之类的云云)。
说实话最近整体的工作节奏都有些慢,受大环境的影响吧。本来打算等到我稳定运行后再发布了,但是这可能还要一阵子,就先预先发布一下看看反馈再说。现在大家运行起来可能有点吃力,因为还缺一个项目脚手架,后面会补上。
如果觉得对你有用,还望支持一下,对我回复个 +1. 如果大家热情足够的话,因为涉及到文档,我感觉上手难度还是有的,到时会建个 QQ 群或微信群做全面的答疑。如果大家热情不高,我就当成一个小众项目在我的团队里使用吧。视反馈而定。
1 Vegetable 2022-09-14 17:10:53 +08:00 省流:Ruby 写的 |
2 lizhenda 2022-09-15 14:46:10 +08:00 Ruby 的优势是啥? |
3 magicdawn 2022-09-16 16:27:09 +08:00 ruby 的优势: make programmers happy |
4 yetrun OP 我忘记声明是 Ruby 写的了,貌似这种语言不被大众接受。对于写这种领域驱动( DSL )的框架,用 Ruby 较容易实现。另外一种可选项是 Groovy. 先做个调研吧,如果用 Groovy 实现框架,可结合 Java 应用,可接受度是不是更高一点。 |