hualinux dj3 2.2:RESTful API说明及实例

目录

一、复习restful出现前后比较

1.1 restful出现前后比较

1.2 restful api例子

1.2.1 例子需求

1.2.1 使用put进行修改

1.2.2 使用patch进行修改

1.2.3 put和patch的区别

二、Django REST framework(drf)的中rest理解


我在《入门篇 3编程概念》专栏的《什么是API接口(新手必看!)》讲了什么是restful api但并没有举个例子说明。所以本篇要举个例子作进说明。

一、复习restful出现前后比较

1.1 restful出现前后比较

我还是以《连接mysql8.0数据库》所建立的项目为例子。做一个CURL操作的讲解

下面的stu为student学生的意思,sid为学号是一个变量填写具体的值,我们以学号为条件对它进行增删除改查操作

在Restful之前的操作:
http://127.0.0.1/stu/query/   GET提交: 表示查询学号为sid的学生信息
http://127.0.0.1/stu/save               POST提交:表示 新增学生
http://127.0.0.1/stu/update/    PUT 提示:修改学号为sid的学生信息
http://127.0.0.1/stu/delete/    GET或POST提交:表示删除学号为sid的学生信息

RESTful用法:
http://127.0.0.1/stu/      GET提交: 表示查询学号为sid的学生信息
http://127.0.0.1/stu/               POST提交:表示 新增学生
http://127.0.0.1/stu/      PUT提交: 表示修改学号为sid的学生全部信息(全部更新)
http://127.0.0.1/stu/      PATCH提交:表示修改学号为sid的学生部分信息(局部更新)
http://127.0.0.1/stu/      DELETE提交:表示删除学号为sid的学生信息

 注意:上面的put和patch方法的区别,如果使用put要提交所有表的字段,如果使用patch只提交部分即可

PS:我们学过点开发基础的都知道get提交即正常打开网页,正常写是http://127.0.0.1:8000/sid?stuSid=001

而把?号变斜杠,把变量名省去,变成sid/<变量值>,这样方式叫url的pathinfo模式

上面的除了get访问参数是写在url地址上外,其它方法请求都不是写在url中的,而是在提交的时候放在body主体中一起提交到指定网址的。

1.2 restful api例子

1.2.1 例子需求

我现在举一个例子,就拿前面学生的学生表来说。我看一下前5条学生信息,如下图所示:

hualinux dj3 2.2:RESTful API说明及实例_第1张图片

发现张三的语言成绩,打错了,要改为81分,那么就可以使用put,可以使用vue这样专业的前端axios或jquery的ajax进行put提交,为了方便我就不写前端,直接使用postman工具进行测试,我使用的是json提交,一般前后端分离使用的是json,如果不懂json,可以看一下json教程。

1.2.1 使用put进行修改

我先使用put进行修改学生成绩,用json表示就是

{"id":1,"sid":"001","name":"张三","yuWen":"81.0","shuXue":"65.0"}

使用put方法向 http://127.0.0.1:8000/stu/001/ 提交上面的json就行了,用postman截图如下:

hualinux dj3 2.2:RESTful API说明及实例_第2张图片

使用sql查看一下效果:

hualinux dj3 2.2:RESTful API说明及实例_第3张图片

==,我不是只修改语言成绩吗,json不是直接写 {"yuWen":"81.0"} 就行了吗?!

那我们试下,发现报错了,如下:

hualinux dj3 2.2:RESTful API说明及实例_第4张图片

1.2.2 使用patch进行修改

我觉得上面设计不合理,我只想提交需要修改的,其它保持不变,行不行?!那就用到patch了,我们把上面的PUT方法改为patch试下,为了看效果,我把语文成绩改为72分,效果如图:

hualinux dj3 2.2:RESTful API说明及实例_第5张图片

发现没有报错,修改成功了,执行的SQL看一下,发现也修改为72分,如下图所示:

hualinux dj3 2.2:RESTful API说明及实例_第6张图片

1.2.3 put和patch的区别

所以你明白了put和patch的区别了吗,PUT提交一般是要提前所有字段的值,patch只需要提前部分字段的值就行了。

所以说PUT叫全部更新,PATCH叫局部更新。

二、Django REST framework(drf)的中rest理解

Django REST framework(简称drf)中的rest就是restful风格,因为它是api,又符合rest风格,所以叫restful api像上面所说的一样。

我们是要使用到http几乎全部方法你,这样就充分利用了http的优势。

 

你可能感兴趣的:(django3入门,hualinux,django,django,drf,restful,resful,api,rest例子)