我不是 Python 开发人员,但我与 Python 开发人员一起工作。
场景如下:我被要求实现与 Python 框架集成的系统的一部分。然后,我同意其他团队使用 Java 开发我的部分,并为他们实现 REST 绑定提供全面支持。所以我使用 Spring MVC 和 Hibernate 在 Java 中实现了一个 webapp。我无法详细说明,但设计合同类似于以下内容:
Python 框架调用具有特殊身份验证和授权标头的 REST API。Spring MVC 控制器使用拦截器基于此类 HTTP 标头执行身份验证和授权,然后被调用。控制器本身使用一个路径变量和两个可选GET
参数来确定被访问对象的类型和时间戳范围
/api/{datatype}?[starttime=AAA]&[endtime=BBB]
使用正确的switch
语句,我选择了正确的 Hibernate 存储库来使用这些参数进行查询并返回一个对象(映射到表),该对象由 Jackson 映射器为 Spring MVC 转换为 JSON。
作为系统集成商,我会告诉这些人对我在 Tomcat 上运行的组件形成合法的 HTTP 请求并解码 JSON(根据他们的数据库模型设计)。
相反,这些人要求我将所有东西都翻译成 Python。除了完全没有 Python 经验(我几乎不能编写一个计算二项式系数的控制台应用程序,只是不能实现另一个 hello world 或简单的计算器),我猜在 Python 中不存在 Hibernate、Spring 和 Jackson 这样的东西。
那么,让我们来回答这个问题。Python 中是否有任何框架允许我...?
- 用很少的代码轻松创建 REST API (Django????)
- 轻松拦截现有的 REST API 并正确模块化 HTTP 管道,即通过类似于拦截器的机制进行 api 代码外的身份验证、后处理输出流等(我在他们的身份验证代码库中看到了类似的东西) ...我们可以将其标记为已解决)
- 执行依赖注入。在 dev、staging、production 之间切换时,我目前更改了实现业务代码调用的接口的类
- 将对象映射到关系,例如 Hibernate。这是我目前最黑暗的一点。我认为 Python 中没有任何 ORM
- 将对象映射到 JSON(我知道这是可行的,他们已经在他们的代码库中这样做了)
我不会发布示例代码,认为它没用。我试图将问题作为一般问题发布,而不是深入研究细节。