gpt4 book ai didi

java - 是否有用于包装 Text/XML/JSON 数据服务的语言中立 API 生成器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:58 24 4
gpt4 key购买 nike

我试图在 JSON http 服务之上构建一个健壮的、面向对象的、语言中立的 API,这样我就可以在不破坏运行网站的客户端代码的情况下更改数据的底层表示和结构。

(1) 是否有用于 REST 世界的 hibernate/ibatis/SQLAlchemy 风格的 API 生成工具?特别是,我有兴趣在 SOLR 服务器上放置一个漂亮、干净的 API,它提供 json 数据。或者我可能只想创建一个服务器端工具,它可以查询大量文本文件,并将这些文件作为可通过 HTTP 访问的对象提供...

然而,这里的问题是我想以一种语言中立的方式来做到这一点(使用 hibernate 类比,我希望我的 hibernate 生成器在 PHP 和 Java 中生成 DAO 类,例如).

(2) 更通用 --- 是否有通用的方法来创建在现代的、http 驱动的、NoSQL 世界中工作的 hibernate/ibatis 风格的对象 api;隐藏数据位置、存储数据结构、连接处理、礼貌等的潜在复杂性……?

最佳答案

考虑使用类似 StringTemplate 的库来滚动自己的库.

事实上,您的工具可以是跨平台和跨语言的,因为有多个运行时的 StringTemplate 实现。

您还可以为单个运行时定位多个库,例如在 Java 中,您可以生成纯 servlet,或者让用户使用支持注释样式的库,例如 ReSTLets 或 Spring Mvc 3。

编辑:阐明可能的解决方案

  1. 创建一种描述 JSON 函数调用的方法,类似于 Soap 的 WSDL(不知道这是否已经存在)
  2. 如果此元数据尚不存在解析器,则创建该解析器。
  3. 对于每种目标语言和运行时,创建 StringTemplate 模板和一些胶合逻辑以选择正确的输出模板。每个模板基本上应该将已解析元数据中的数据铲到生成的类中。
  4. 考虑将该工具构建到现有平台工具基础架构(maven 插件、ruby gem 等...)

替代方法:对于每个目标运行时,创建一个将提供远程 JSON api 的数据绑定(bind)库。创建一个数据绑定(bind)元数据描述,用于描述如何将数据整合到现有的目标语言对象中。在 Java 中,这可以在 XML 中完成,例如或使用注释。

关于java - 是否有用于包装 Text/XML/JSON 数据服务的语言中立 API 生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com