【发布时间】:2021-03-12 18:59:15
【问题描述】:
我正在创建一个充当库而不是应用程序的 python 库。它是具有复杂响应的 REST API 的包装器,我想抽象解析。然后应用程序可以使用该库。
REST API 围绕 SaaS 产品,因此一个配置部分是域,另一个是 api 密钥。我知道我可以创建一个 ini 文件并使用configparser。但这意味着我仍然需要将配置文件的路径传递给库。但是,dict 会更好,因为这样应用程序可以决定如何存储配置。我还想只初始化一次库,并且没有选项作为方法或构造函数参数(初始化方法除外)。
我怎样才能做到这一点?在使用库之前让应用程序要求调用特定方法(如config(options: dict))是否明智?
编辑:
我能想到的最好的比喻是 REST 的 ORM。假设有房间、书架和书籍,每个都由一组 API 端点(GET、PUT 等)支持。所以我想创建一个类来包装每个项目的这些调用,并且每个类(如 Book、Room 等)都需要访问配置。
重要的是这些项目在系统中是可配置的,例如。管理员可以向他们添加他们想要的任何属性,例如,GET 调用会返回一个属性列表,其中包含关于它们的元数据(id、名称、类型等)。因此需要包装器。
【问题讨论】:
-
在您的库的配置文件中提供默认值。以编程方式覆盖默认值 - 即通过初始化。
标签: python configuration