前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2023年的第一个总结

2023年的第一个总结

作者头像
用户4945346
发布2023-01-11 14:04:42
1930
发布2023-01-11 14:04:42
举报
文章被收录于专栏:pythonista的日常pythonista的日常

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

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

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

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

一、直观使用感受

1.请求类型变成了

代码语言:javascript
复制
 application/vnd.api+json

2.请求参数

代码语言:javascript
复制
/trip/?limit=10

变成了

代码语言:javascript
复制
/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 属性,写上数据库和表名就行,值得注意的是必须要有【`】

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 pythonista的日常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档