django2前后端分离——restful

restful 规范(建议)

1.根据method不同做不同的操作

基于FBV
urlpatterns = [
    path('order/',views.order),  
]

def order(request):
    if request.method=="GET":
        return HttpResponse('获取订单')
    elif request.method=="POST":
        return HttpResponse('创建订单')
    elif request.method=="PUT":
        return HttpResponse('更新订单')
    elif request.method=="DELECT":
        return HttpResponse('删除订单')
基于CBV的
urlpatterns = [
    path('orderview/',OrderView.as_view()),
]

class OrderView(View):

    def get(self,request):
        return HttpResponse('获取订单')
    def post(self,request):
        return HttpResponse('添加订单')
    def put(self,request):
        return HttpResponse('更新订单')
    def delect(self,request):
        return HttpResponse('删除订单')

restful通讯协议规范

1.使用https

  1. 子域名型(需要解决跨域安全问题):
    www.xxxx.com
    api.xxxx.com
    url型(不需要解决跨域安全问题):
    www.xxxx.com
    www.xxxx.com/api
    3.版本
    www.xxxx.com/api/v1/
    4.路径,视网络上任何东西都是资源,均用名词表示
    www.xxxx.com/api/v1/名词/
    5.返回状态码status(有的公司也不写状态码)
    6.code
class OrderView(View):

    def get(self,request):
        ret={
            'code':1000,
            'msg':'xxx'
        }
        return HttpResponse(json.dumps(ret),status=201)

谈谈你对restful api规范的认识(面试题)

restful的十个规范+按照剧本发挥一下,举几个使用的例子

推荐使用CBV

你可能感兴趣的:(django2前后端分离——restful)