最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

C++中,如何优雅的处理JSON数据(五)超越JSON迈向自动化生成HTTP2 RESTful框架代码

XAMPP相关 admin 96浏览 0评论

C++中,如何优雅的处理JSON数据(五)超越JSON迈向自动化生成HTTP2 RESTful框架代码

首先要声明的是这个框架和公司相关,所以不能贴出代码,只能讲讲思路。如果小伙伴有兴趣,我们可以交流实现细节。

这篇文章会介绍一个我写的SDK叫L8。有了这个SDK,之前staticjson要做的事情会全部自动化。你要做的只有去标准网站下载标准,这是你唯二要做的事情。其他要做的就是添加你的APP的逻辑代码就可以了。

背景

大概是两年前,我们发现5G核心网有一个新网元,叫做UCMF。我们去看了看公司的portfolio,发现没有对应的产品。大家可能对一个5G的网元没有概念,就拿我们部门举例子吧,我们部门主要做UDM这个网元,大概有300多人做开发......

当然发现这个新网元,我们很兴奋,在学习过这个网元后,要去说服portfolio manager去规划实现细节(这个无主的网元,当然有其他部门想做)。当然我们不能空手套白狼,我们想先做一个PoC,然后去说服portfolio manager,这个网元让我们做就十拿九稳了。

那么问题来了,对于传统的开发流程,一个网元要上百人花费以年为单位来实现,同时我的手上还有我的日常工作,公司不会给安排额外的时间来实现这个PoC。所以我们要打破之前的思路。于是我们就开发了L8(我起的名字,代表Layer 8)SDK。用了这套SDK,我大概用了不到一周的时间业余时间就完成了PoC的代码。

是不是对这个SDK的能力很好奇?是不是想知道这个SDK如何让一个程序员提成百倍千倍的工作效率?

前置知识

提到5G SBA架构,我们首先要了解什么是OpenApi。

还有OpenApi的生态系统:

当我们看到这个的时候就想用它来生成代码。但是发现现实很骨感。原因是没有HTTP2的支持,而且现有的功能对于一些OpenApi的标准支持有限。所以我们开发了一个特殊的OpenApi C++ HTTP2的插件。我们把它叫命名为L8。

L8 introduction

有了L8以后,我们的开发流程就是上网下5G标准,然后作为这个SDK的输入,L8会生成框架的代码,程序员只要写对应API的handler就可以了,至于你想要的data,生成的代码都会把这些data以函数参数的形式给你。对,就是这么神奇,你想到的数据他都能给你,并且以函数参数的形式,你要做的就是实现这个handler的APP逻辑。也就是做到了让你只关注APP逻辑。其他的工作,自动生成就完了!而且L8生成的code最终会编译成一个动态库。APP只要link这个库就可以了,只要标准没有大改动,APP的代码甚至不用改动就能顺利的升级成新的标准。

L8还有一套tools的合集,比如如何通过标准的yaml生成schema 文件等。这个生成的文件就可以作为JSON parser的schema,用于JSON schema validation。

总结

虽然关于L8的技术细节不能分享,但是这篇文章指明了一个思路就是通过定制化OpenApigenerator来实现代码生成自动化。少点手写按部就班的代码,把我们的时间用在创新的事情上!

转载请注明:XAMPP中文组官网 » C++中,如何优雅的处理JSON数据(五)超越JSON迈向自动化生成HTTP2 RESTful框架代码

您必须 登录 才能发表评论!