gpt4 book ai didi

java - 我可以为 JAX-RS JSON API 生成 C/C++ 客户端吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:27 25 4
gpt4 key购买 nike

假设我有一个来自运行 Tomcat 的服务器的远程 JAX-RS JSON API。我想从 C/C++ 客户端访问此 API。是否有任何工具可以让 C/C++ 客户端的生活更轻松,例如代码生成器?或者有人有替代方案的建议吗?

最佳答案

我从来没有听说过这样的工具。更重要的是,我怀疑这样的工具(用于 JSON 的 C/C++ 生成器)不切实际。

原因有很多。一些最重要的是:

  • 一个关键问题是 JSON 没有架构。这意味着 API 生成器将不得不求助于查看示例消息并尝试推断预期的字段及其类型。这在某些情况下可能很困难,甚至在理论上是不可能的。

  • 在 Java 和 C# 等语言中,有直接的“正确方法”来生成对象 API;例如JavaBeans 约定。在 C++ 中,尤其是 C 中,没有约定,并且有容器协议(protocol)和内存管理等复杂问题需要处理。

  • Java 和 C# 等语言是运行时类型安全的,并且提供了各种语言级别的机制,允许您使用动态编程来处理 JSON 的无模式性质。例如,在 Java 中有反射、代理类、动态代码生成和动态代码加载,所有这些都有助于处理 JSON。在 C 和 C++ 中,这些机制通常不可用。

简而言之,如果您使用的是 C 或 C++,那么 JSON 库会尽善尽美。

跟进

正如评论所指出的,这在特定基于 JAX-RS 的服务器实现的上下文中实现可能是可行的。您需要掌握内部元数据,对其应用 JSON 映射,并从中生成 C/C++ API。问题是:

  1. 生成器实现将特定于平台。
  2. 如果不重新生成 API 和相应的客户端代码更改,基于 C/C++ 的客户端将无法应对有效架构的更改。 (相比之下,理论上可以对基于 JSON 库的解决方案进行编码以处理意外的新属性等)
  3. 您还有容器/内存管理问题需要处理。

关于java - 我可以为 JAX-RS JSON API 生成 C/C++ 客户端吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475187/

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