# a3dj

基于django做了一些规则设定，让开发过程更简单

## 特点

1. 不用专门写注解或语法，就可以全量生成open api文档，包含各种异常返回
2. 非常方便写单元测试
3. 抛出一个异常就是一个异常响应；单元测试时甚至也可以在发出请求后去捕获这个异常
4. 请求时想用json用json、想用form-data用form-data

## 自问自答

### 1. 为什么用纯post的方式，不用restful？

* 如果项目只是纯sql数据对象的增删改查，用restful、GraphQL更合适
* 我经历的项目通常都比这个复杂一些，多种类型的数据库、不能简单抽象为资源的业务、需求还老变、对严谨性要求稍高等，让我使用restful时考虑怎样restful占用了很常时间
* 总的来说，我很快放弃了restful；后来又经历了带新人，甚至想让其他人也能看得懂代码，我的需要就变成了：适应快速变化、简单易懂
* 纯post的方式，也可以提供增删改查的基类便于快速实现增删改查；对于习惯了restful风格开发的前后端程序员来说，这个只会更简单

### 2. 为什么不使用或基于django-rest-framework？

* 它很复杂、上手需要花费较多时间进行系统的学习
* 不直观、不易懂，反而容易混淆，比如serializer

### 3. 为什么重新写form模块？

* django的form模块对于生成open api文档来说，太简陋了；对于平常使用（非admin）来说太重了
