接口测试:关心的只是数据,若是返回的是页面,这种不是接口, 须要http协议和json格式, 能够安装jsonview查看json格式前端
接口能够是不一样系统之间会须要接口(如天气接口,如不想本身开发这种功能 ,能够用气象服务部门的天气接口来实现),也多是下层服务对上层服务的接口(功能内部的调用,编程语言和database之间, 须要驱动,这个驱动是提供了给编程语言去操做数据库的API,这个api就能够看作是接口。
还能够是服务与服务之间的调用,如抽奖接口,会去调用其它接口,如调用用户接口,python
a. 前端和后端通常分分离,这样后端开发能够不用精通前端技术,如HTML/JavaScript/CSS, 只专一于数据的处理, 对外提供API 接口web
b. 前端的专业性愈来愈高,经过API接口获取数据,从而专一于页面的设计
c.先后端分离增长接口的应用范围,开发的接口能够应用到web页面上,也能够应用到移动app上。数据库
通常开发接口都用api作为一级路径, e.g.: 127.0.0.1:8000/api/....django
a. 建立添加发布会接口:add_event/:
能够加在urls.py里:
path('api/add_event/', views.add_event)
也能够在应用里添加二级路径: 在sign应用下建立一个python文件,命名为urls.py
那么在guest里的urls.py里就应该加上:
path('api', include('sign.urls'))
在sign下面的urls.py里添加:
from diango.urls import path
from sign import views
urlpatterns = [
path('add_event/', views_api.add_event, name = 'add_event')]
而后再建立一个views, 如views_api.py,建立一个add_event 函数,但返回要用jsonResponse(就是字典格式)
def add_event(request):
if request.methon =='POST':
eid = request.POST.get('sid', '')
name =request.POST.get('name', '')
.....把发布会的参数都加上
if eid=='' or name =='' or ....:
return JsonResponse({"status":10021, "message":"参数为空"}) #这里的status能够随便命名,如1111, 2222
else:
return JsonResponse({"status":10031, "messag":"请求方法错误"})编程
若是是post请求,那么须要用接口测试工具: postman,能够模拟http调用
postman里请求方法选post,header能够不要,body很重要,须要把参数都传过来,而后点send。json
Get请求的话是在?后面加参数.后端
Jmeter:接口测试工具:api
robotframework:接口测试工具: (python 的库python -m pip install robotframework)
C:\python36\Scripts\pyrob.bat 运行
后缀:.robot
脚本分两部分:settings and test case (能够参照官网)
settings:至关于导包
如: Library SeleniumLibrary
Test case:
test_hello
log hello robot framework #(log至关于python里的print)安全
python -m robot hello.robot(能够解除警告)
接口的安全机制:
不可能随便让人使用,因此要有安全机制, 通常三种方法: