一、RESTFUL API设计规范 (10条):
-
API与用户的通信协议,总是使用HTTPS协议
-
域名:
-
尽量将API部署在专用域名(会存在跨域问题)
-
API很简单
-
-
版本:
-
-
可以放在请求头中
-
-
路径:视网络上任何东西都是资源,均使用名词表示
-
通过method区分是什么操作
-
get表示获取
-
post 表示新增
-
delete表示删除
-
patch/put 表示修改
-
-
过滤,通过在url上传参的形式传递搜索条件
-
状态:状态码{"status_code":100}
-
错误处理,返回错误信息
{"status_code":100,'msg':'登录成功'} {"status_code":101,'msg':'用户名错误'}
-
返回结果,针对不同的操作服务器向用户返回的结果
-
返回结果提供链接
二 、基于Django的实现
# 路由函数 url(r'^books/', views.Books.as_view()), # 视图函数 def books(request): # 获取所有图书 if request.method=='GET': books=models.Book.objects.all() #把queryset对象转成json格式字符串 # ll=[] # for book in books: # bo={'name':book.name,'publish':book.publish} # ll.append(bo) #列表推导式 ll=[{ 'name':book.name,'publish':book.publish} for book in books] response={ 'code':100,'msg':'查询成功','data':ll} #safe=False 如果序列化的对象中有列表,需要设置 return JsonResponse(response,safe=False,json_dumps_params={ 'ensure_ascii':False})