zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CentOS 7.0关闭默认防火墙启用iptables防火墙
    centos7 启动httpd的时候为什么显示是这样的
    CentOS配置本地yum源/阿里云yum源/163yuan源,并配置yum源的优先级
    Linux如何用yum安装软件或服务
    IE浏览器和Firefox浏览器兼容性问题及解决办法
    Input的size与maxlength属性的区别
    下拉框默认选择数据库取出数据
    登录到 SQL Server 实例
    安装sql server 2008重启失败
    值栈
  • 原文地址:https://www.cnblogs.com/yifugui/p/8417993.html
Copyright © 2011-2022 走看看