• django-rest-framework


    restful规范:
      API与用户的通信协议,总是使用HTTPs协议
    - URL

    https://api.example.com                         尽量将API部署在专用域名(会存在跨域问题)

    https://example.org/api/                        API很简单

     - url名词
      路径,视网络上任何东西都是资源,均使用名词表示(可复数)

    https://api.example.com/v1/zoos

    https://api.example.com/v1/animals

    https://api.example.com/v1/employees

       - 版本(v1/v2/……)
    - 提交方式
        GET: 获取
        POST: 添加
        PUT: 更新
        DELETE:删除
       - status
        2xx:OK
        3xx:重定向
        4xx:用户发出的请求有错误
        5xx:服务器发生错误
        更多看这里:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
        中文看这里:http://www.cnblogs.com/yifugui/p/8416123.html
       - Hypermedia link
        RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。
    {"link": {
      "rel":   "collection https://www.example.com/zoos",
      "href":  "https://api.example.com/zoos",
      "title": "List of zoos",
      "type":  "application/vnd.yourformat+json"
    }}
       - 错误详细
      - 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范。
    GET /collection:返回资源对象的列表(数组)
    GET /collection/resource:返回单个资源对象
    POST /collection:返回新生成的资源对象
    PUT /collection/resource:返回完整的资源对象
    PATCH /collection/resource:返回完整的资源对象
    DELETE /collection/resource:返回一个空文档
    

    基于Django实现

      路由系统:

    1
    2
    3
    urlpatterns = [
        url(r'^users', Users.as_view()),
    ]

      CBV视图:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    from django.views import View
    from django.http import JsonResponse
     
    class Users(View):
        def get(self, request, *args, **kwargs):
            result = {
                'status'True,
                'data''response data'
            }
            return JsonResponse(result, status=200)
     
        def post(self, request, *args, **kwargs):
            result = {
                'status'True,
                'data''response data'
            }
            return JsonResponse(result, status=200

     更多查看:http://www.cnblogs.com/wupeiqi/articles/7805382.html

  • 相关阅读:
    软件开发规范
    内置模块
    自定义模块
    装饰器 递归
    内置函数 闭包
    生成器 推导式
    函数名运用 新版格式化输出 迭代器
    函数进阶
    pycharm快捷键
    移动端必测点
  • 原文地址:https://www.cnblogs.com/yifugui/p/8417993.html
Copyright © 2020-2023  润新知