工作中大量的时间都是在做业务开发,忽略了开发语言、框架等方面的知识更新,参与开源项目的好处之一是可以让自己保持进步。
写这篇文章的时候,Watchmen的Release版本为16.3.17,我正在努力跟上团队的步伐,开发环境、前后端、API均测试通过...
过程中消耗时间的原因反映了我研究过程不细心,也反映了我某些知识的陈旧。这里把了解到的新的东西分享一下。
Python包和依赖管理
我们做Odoo开发项目管理依赖包是通过一个requirements.txt文件,其中列出了依赖包和版本号,在项目环境初始化的时候,使用pip install -r 可以一次性安装好。
但Watchmen使用的是Poetry(我在之前的文章中还说过团队没有提供requirements文件,在这里就啪啪打脸了,这也是为什么前面说研究过程不细心的原因之一)。
Watchmen的每个后端模块包中都有一个pyproject.toml文件,当然还有一个poetry.lock文件,这就是用来管理Python包和依赖的。不过因为我已经手动将依赖都装好了,所以就没有体验Poetry,等后续遇到新的模块需要安装依赖包,再体验一下。看文档,也是创建虚拟环境,估计会跟我当前的有冲突。
关于Poetry的详细信息,可以去Github上了解:https://github.com/python-poetry/poetry
授权管理
Watchmen在最新版的文档中对Rest API的描述,从我的角度看,略微简单了些。由于我并没有授权相关的基础知识,之前只是生搬硬套,看文档中的--header 'Authorization: Bearer ...' \,还觉得自己有经验....
事实是Bearer这个类型常见于OAuth和JWT授权,而我将PAT的token用到了Bearer这个类型上。我是怎么出坑的呢?当然还是代码:
找到上述代码之后,才反应过来问题所在,又仔细搜索了一下watchmen的文档,找到了一个地方印证了我的猜测,然后又去找授权相关的资料,才解决了问题。
至此,我感觉我已经是一个合格的Watchmen入门级开发人员,后面就是中级、高级、专家级,未来可期。