我正在开发一种软件,该软件涉及专有格式的数据库创建、操作和扩展,该格式部分受 SQL 启发,但范围更广。我的软件的某些部分是用 Python 编码的,大部分是用 Java 编码的,而在 Visual Basic 中只是有点前端。如何将用 Python 和 Java 编写的后端代码与 VB (2012) 以及它们之间的调用函数集成在一个解决方案中?
1 回答
我会通过选择三种语言中的一种作为数据库后端来处理它,然后开发一个 API 以使用 HTTP 或其他协议在它们之间进行交互。
例如,您可以使用 Python Django强大的 ORM 来开发您的数据库模型,然后使用 Django Tastypie库在端点公开您的数据库模型的 API 资源,例如http://localhost/api/v2/foo/
(foo 对象列表)和http://localhost/api/v2/foo/24/
(详细的 foo 对象foo.id = 24
)。
然后,在您的 VB.NET App_Code 文件夹中编写一个使用localhostRESTfulApi
您的 django-tastypie API 的类。这可以是简单的,也可以是您想要的复杂的。
简单的情况包括使用类似localhostRESTfulApi.POST([endpoint URL], [new object data])
. 您必须了解 POST/GET/PATCH 请求在所有情况下的工作方式,并且它不是 OOP-y。
复杂的解决方案是在 django 数据库后端将对象的包装器重写为 VB 中的类(以及 Java 中的类),这些类具有一个构造函数,该构造函数接受null
一个新对象或id
一个它将检索的对象在实例化时通过 API(例如,通过使用该localhostRESTfulApi.GET
方法。这样,您只需在对象类的私有方法中编写 API GET/POST 逻辑,而不是在整个应用程序中乱扔垃圾,就可以省去一些笨拙。
您还可以编写一个save()
方法,在后台执行适当的 API PATCH/PUT 请求以与数据库后端同步——或者可能覆盖类上的get
/set
属性方法以即时检索和保存更改(无需调用异步save()
方法)。
我很想知道其他 SO 用户提出了什么解决方案。这只是我之前在多语言/平台应用程序上完成的一种方式(无论如何我还需要一个外部 RESTful API)。