zl程序教程

您现在的位置是:首页 >  其它

当前栏目

2023年的第一个总结

总结 2023 第一个
2023-06-13 09:16:40 时间

元旦假期对 2022 年进行了一次回顾与总结,发现最近一年公众号基本上是处于停更的状态,今年希望有所改善吧。

刚好最近一段时间,在技术上学习了一些新东西,非常难得。最近在做API接口重构改造,有一点点收获,所以打算写一下。

团队API写法及文档出现了“百家争鸣“的乱象,直接影响到代码质量、交接成本、联调进度、及bug的review的难度。所以引用 JSONAPI 交互规范,优化前后端 crud 等简单功能的开发对原有 api 进行重构改造,后端是引入了新的第三方库 django-rest-framework-json-api。

它是依赖于 Django REST framework ,在其基础上进行了参数结构调整等功能封装,使用起来和 Django REST framework 很像,变化主要体现在

一、直观使用感受

1.请求类型变成了

 application/vnd.api+json

2.请求参数

/trip/?limit=10

变成了

/trip/?page[limit]=10

3. 返回结果,多了其他信息,比如 type、attributes、relationships

4.body 的请求参数也有变化

二、代码层面:

在 settings 上按照文档设置 rest_framework_json_api 相关属性

序列化验证器直接替换为它的 serializers

其他写法和 django-rest-framework 用法基本上一样。

三、重写部分源码

为了减少之前API的改动量,这边也对 django-rest-framework-json-api 部分源码修改,包括控制参数返回的 JSONRenderer、swagger-ui 文档生成等部分进行了重写

四、其他

之前一直以为 Django 不支持跨库,后来了解到,只需要在模型的元类添加 db_table 属性,写上数据库和表名就行,值得注意的是必须要有【`】