REST接口开发的核心任务
-
RestAPI开发核心工作
在开发REST API接口时,视图中做的最主要有三件事:
- 将请求的数据(如JSON格式)转换为模型类对象
- 操作数据库
- 将模型类对象转换为响应的数据(如JSON格式)
-
序列化Serialization
在以上操作中,涉及到两个概念:序列化和反序列化。
-
序列化
将程序中的一个数据结构类型转换为其他格式(字典、JSON、XML等),例如将Django中的模型类对象转换为字典或JSON字符串,这个转换过程我们称为序列化。
queryset = BookInfo.objects.all() book_list = [] # 序列化 for book in queryset: book_list.append({ 'id': book.id, 'btitle': book.btitle, 'bpub_date': book.bpub_date, 'bread': book.bread, 'bcomment': book.bcomment, 'image': book.image.url if book.image else '' }) return JsonResponse(book_list, safe=False)
-
反序列化
将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串或字典转换保存为Django中的模型类对象,这个过程我们称为反序列化。
json_bytes = request.body json_str = json_bytes.decode() # 反序列化 book_dict = json.loads(json_str) book = BookInfo.objects.create( btitle=book_dict.get('btitle'), bpub_date=book_dict.get('bpub_date') )
-
在开发REST API时,视图中要频繁的进行序列化与反序列化的操作。
-
-
RestAPI核心工作说明
在开发REST API接口时,我们在视图中在做的最核心的事是:
-
总结:
- 序列化:将对象转换为字典或者json的过程。
- 反序列化:将字典或json转换保存到对象中的过程。
- RestAPI核心工作:
- 将数据库数据序列化为前端所需要的格式,并返回。
- 将前端发送的数据反序列化保存到模型类对象,并保存到数据库中。