写点什么

inBuilder 今日分享丨 RESTful API 动态发布技术

  • 2023-06-16
    山东
  • 本文字数:997 字

    阅读完需:约 3 分钟

RESTful API 是什么?在 inBuilder 中的应用?如何实现动态发布?本文将为你一一解答。

一、什么是 RESTful API?

RESTful API 是一种流行的 API 设计风格,可以让软件更加清晰、简洁、有层次、易于维护。它充分利用了 HTTP 协议的各种功能,是 HTTP 协议的最佳实践。

二、RESTful API 在 inBuilder 中的应用?

在 inBuilder 中,前后端通信采用 RESTful 风格的 API。通过 inBuilder 低代码平台开发的应用中,API 同样符合 RESTful 风格。

作为前后端通信的接口,inBuilder 中每一个应用都需要众多的 RESTful API 来提供服务,为了提高开发效率且保证可维护性和稳定性,inBuilder 使用了统一业务建模语言及 RESTful API 动态发布技术自动生成和发布 RESTful API。

三、RESTful API 动态发布技术详解

inBuilder 中的 RESTful API 动态发布技术根据统一业务建模语言生成外部服务定义,将后端提供的服务构建并发布为 RESTful API 供外部调用,整个过程包括五个步骤(见图 1 所示):描述 API、生成代码、编译代码、加载字节码和注册发布。具体实现过程如下:

图1 RESTful API动态发布过程


1、描述 API

外部服务定义(见图 2 及图 3)描述了提供服务的业务资源(如:视图对象)以及该业务资源提供的具体操作信息。每个具体操作中定义了请求路径、HTTP 方法、参数、返回值等信息。

图2 外部服务定义元数据类型


图3 外部服务定义详细内容


2、生成代码

根据外部服务定义信息,inBuilder 可以生成 RESTful API 的 Java 代码。生成的代码样例如图 4 所示。

图4 EAPI代码生成样例


3、编译代码

生成的 Java 代码需要编译成.class 文件才能被 JVM 加载运行。inBuilder 中使用 Java 动态编译技术,即 JDK 提供的 javax.util.JavaCompiler 类在运行期编译 Java 源代码。JavaCompiler 类编译方法输入输出如图 5 所示。

图5 JavaCompiler动态编译方法


4、加载字节码

编译后的字节码(即.class 文件)需要加载到 JVM 中才可以使用,这就需要借助 Java 提供的类加载器将字节码动态加载到 JVM 中。Java 提供的 URLClassLoader 可以指定目录来加载类,inBuilder 中通过实现其子类,将编译后的字节码加载到 JVM 中使用。动态加载字节码关键步骤如图 6 所示。

图6 利用类加载器加载字节码


5、 注册发布

加载字节码后,可以拿到 Class 类对象,使用 Java 反射生成该类的实例对象。CAF 框架提供了接口用于注册 RESTful API 服务,调用接口时将实例对象作为入参传递即可完成 RESTful API 的动态发布。发布过程如图 7 所示。

图7 调用CAF框架接口注册发布RESTful API


总之,inBuilder 团队的 RESTful API 动态发布技术使用了 Java 提供的动态编译技术,能够动态发布 RESTful API 并提高开发效率,让应用更易于维护和稳定。

如果想了解更多 Java 动态编译技术,可点击下载安装 inBuilder 开源社区版:inBuilder社区

用户头像

还未添加个人签名 2023-03-07 加入

塑造企业一体化研发新范式

评论

发布
暂无评论
inBuilder今日分享丨RESTful API动态发布技术_inBuilder低代码平台_InfoQ写作社区