当前位置: 首页 > 图灵资讯 > 技术篇> 将弹簧MVC应用程序转换为Mendix

将弹簧MVC应用程序转换为Mendix

来源:图灵教育
时间:2025-02-10 14:04:22

本文介绍了如何使用java spring 将mendix应用程序中已发布的rest服务转换为mvc应用程序的rest层。 在运行过程中,我们将使用反射来检测控制器和api端点,并使用mendix平台sdk进行导入。

首先,我们扫描带有@Restcontroller注释的Java类别。对于每个控制器,我们提取其路径(用于Mendix资源名称),并通过其公共方法传播。 我们用一个映射来匹配Spring MVC注解(@GetMapping、@PostMapping、@PutMapping、@DeleteMapping)与对应的Mendix REST操作类型(GET、POST、PUT、DELETE)。

代码片段显示了如何收集控制器信息:

public static void exportRestLayerTo(String filepath) throws IOException {
    // ... (代码略) ...
    for (Class<?> restControllerClass : restControllerClasses) {
        // ... (代码略) ...
        for (Method method : restControllerClass.getDeclaredMethods()) {
            // ... (代码略) ...
        }
        // ... (代码略) ...
    }
    // ... (代码略) ...
}

Java记录类用于导出和导入:MendixPublishedRestService、MendixPublishedRestServiceResource、MendixPublishedRestServiceOperation。 这些类别分别表示Mendix已经发布了REST服务、资源和操作。

record MendixPublishedRestService(
    String serviceName,
    String path,
    String version,
    List<MendixPublishedRestServiceResource> resources) {}

// ... (其他记录类代码略) ...

导出JSON文件后,我们使用Mendix平台SDKTypeScripttt 导入API。 与Java记录类相对应的TypeScript接口:ImportedRestService、ImportedRestResource、ImportedRestOperation。

interface ImportedRestService {
    serviceName: string;
    path: string;
    version: string;
    resources: ImportedRestResource[];
}

// ... (其它接口代码略) ...

然后,我们使用SDK创建Mendix应用程序的工作副本,并在JSON数据中创建已发布的REST服务、资源和操作。 最后,我们使用commitorepository方法将变更提交给mendix应用程序。

const client = new mendixplatformclient();
// ... (代码略) ...
importedServices.forEach(importedService => {
    // ... (代码略) ...
});
// ... (代码略) ...

最后,我们为每一个Mendix做准备 REST操作分配示例微流。 在整个过程完成后,您可以在Mendix中 Studio 验证Pro中创建的REST服务。

将弹簧MVC应用程序转换为Mendix

未来的改进方向包括改进Mendix平台SDK的文档,探索使用静态代码分析来提高效率。 在GitHub仓库中可以找到完整的代码。

以上是将弹簧MVC应用程序转换为Mendix的详细内容。请关注图灵教育的其他相关文章!