接口
我的 Restful API 规范
· ☕ 2 分钟
主要用来规范自己写的 API,也是为了让 LLM 更好理解我的 API。 1. Domain 尽量单独使用一个域名,例如 api.example.com 。 2. Path 统一使用小写字母。 不用包含 /api 前缀。 不要包含扩展名。 / 不要出现在末尾。 对于 Restful API,/ 用来划分资源层级,末尾的 / 会导致混淆。 使用带版本的路径 /v1 。

restframework 中 Serializer 和 ViewSet 的 API
· ☕ 4 分钟
1. Serializer 1.1 数据校验 在反序列化数据时,需要对数据的合法性进行校验。这时,可以调用 is_valid() 进行验证,如果发生验证错误,可以在 .errors 属性获取错误提示信息。例如: 1 2 3 4 serializer.is_valid() # False serializer.errors # {'created': [u'This field is required.']} .is_valid() 方法带有一个可选的 raise_exception 标志,如果存在验证错误,将抛出 serializers.ValidationError 异常。 1 serializer.is_valid(raise_exception=True) 除了使用

restframework 中的 Viewset 和 Serializer
· ☕ 4 分钟
1. Django 中的 View Class 首先回忆一下,Django 对请求的处理逻辑。收到一次请求之后,Django 会生成一个 WSGIHandler 类型的 handler,由 handler 控制整个处理流程。 那么,请求的 URL 与 View 是如何关联的呢? Django 首先根据 ROOT_URLCONF 的配置加载 URLconf,按顺序逐个匹配 URLconf 的 URLp

Vue 中使用 axios
· ☕ 2 分钟
1. axios 安装 使用 npm 安装 1 npm install axios --save 全局注册有两种方法: 绑定到原型上 1 2 import axios from 'axios' Vue.prototype.axios = axios 这种方法,每个 Vue 对象都会新增一个 axios 对象。 1 2 3 this.axios.post(apiUrl).then((res) => { //do something }) 挂载到 windows 对象上 在 DOM 的任意地方,都能使用 axios 函数。 1 2 import axios from 'axios' window.axios = axios; 1 2 3 axios.post(apiUrl).then((res) => { //do something }) 2. axios 配置 为了配合 Django 的 CSRF

后端服务之接口流量控制
· ☕ 4 分钟
1. 流控 缓存、降级和限流是保护高并发系统的常用方法。缓存以空间换时间、减少了 CPU 和网络调用的耗时;降级保护了核心服务的高可用,高峰时段延时或拒绝处理非核心请求;限流是通过限制并发请求来保护系统。 限流就是,在有限资源的情况下,每个 API 接口单位时间内