"Opinionated API" 是什么意思?

What does "Opinionated API" mean?

我在阅读 Python 3.4 引入的 ssl.create_default_context() 函数时遇到了术语 "Opinionated API",它是什么意思?这样的API是什么风格?为什么我们称它为 "opinionated one"?

非常感谢。

这意味着 API 的创建者为您做出了一些她认为最好的选择。

例如,Web 应用程序框架可以选择最适合(甚至捆绑或专门使用)一系列较低级别的库(用于日志记录、数据库访问、会话管理等内容),而不是让您选择(然后必须配置)您自己的。

ssl.create_default_context 的情况下,一些安全专家考虑了合理安全的默认值来配置 SSL 连接。特别是,它将可用算法限制在那些仍然被认为是安全的算法上,以牺牲与遗留系统的完全兼容性为代价,这种权衡在他们(和我)看来是有益的。

基本上他们在说 "we have a lot of experience in this domain, and we really think you should do things in the following way"。

我想这是对 "enterprise" API 的回应,它声称可以与尽可能多的标准接口的每个实现一起工作(以配置和组合的复杂性为代价,需要昂贵的顾问设置一切)。

或"Convention over Configuration"的自然延伸。

一切应该开箱即用,所以你只需要在特殊情况下摆弄专家设置(到那时你应该知道你在做什么),而不是甚至初学者必须对应用程序的各个方面做出明智的决定(这可能会以灾难告终)。