专栏首页随心DevOps你可能不知道的 Django Rest Framework 的两个新特性

你可能不知道的 Django Rest Framework 的两个新特性

前端、甚至大前端发展如此火爆的 2017 年(我相信 2018 年一样)刚过去,像 MVC 架构那样直接使用后端模板渲染前端页面的方式已经不被推崇了(当然有些场景下还是蛮适合的),交互的体验和难度都已经和 MVVM 架构的 Front-End 相差了 108000 Km -- 用户体验差,开发难度还高。现在是 VueJS / ReactJS / AngularJS 与使用 JSON 格式的 Back-End 交换数据的世界。作为一个 Django 使用者,DRF(Django Rest Framework,后面使用简称)也理所当然的变成 Django 开发者必学的一个 Package。


这篇文章我简单介绍一下 DRF 3.6 的两个新特性

1. 内置交互式API文档支持(Built-in interactive API documentation support)

新的 DRF API 交互式文档支持许多功能:

  • 实时 API 交互。
  • 支持各种认证方案。
  • Python,JavaScript 和 Command Line 客户端的代码片段。

依赖或可选的 Package:

  • coreapi Package 是本特性的依赖项,确保安装最新版本哦(2.3.0 或更高版本)
  • pygments Package 编程代码高亮(可选)
  • markdown Package markdown 语法高亮(可选)

要生效 API 交互文档特性,您仅需要这样将其包含在项目 URLconf 中:

from rest_framework.documentation import include_docs_urls

API_TITLE = 'API title'
API_DESCRIPTION = '...'

urlpatterns = [
    ...
    url(r'^docs/', include_docs_urls(title=API_TITLE,
                                     description=API_DESCRIPTION))]

2. 一个新的 JS 客户端库(A new JavaScript client library)

新的 JavaScript 客户端库允许您加载一种新的 API 模式,在应用程序层接口与该 API 交互,而不是显式构建提取请求(比如使用 axios 等前端类库)

下面是一个简短的例子,它演示了:

  • 加载客户端库和模式。
  • 实例化已认证的客户端。
  • 使用客户端进行 API 请求。
<html>
  <head>
    <script src="/static/rest_framework/js/coreapi-0.1.0.js"></script>
    <script src="/docs/schema.js"></script>
    <script>
        const coreapi = window.coreapi
        const schema = window.schema
        // Instantiate a client...
        let auth = coreapi.auth.TokenAuthentication({scheme: 'JWT', token: 'xxx'})
        let client = coreapi.Client({auth: auth})
        // Make an API request...
        client.action(schema, ['projects', 'list']).then(function(result) {
            alert(result)
        })
    </script>
  </head>
</html>

JavaScript 客户端库支持各种身份验证方案,可以由您的项目本身使用,也可以作为与 API 进行交互的外部客户端使用。

客户端不限于使用 REST 框架 API,尽管目前只支持加载 CoreJSON API 模式。后续将会计划支持 Swagger 和其他 API 模式。

有关更多详细信息,请参阅:

http://www.django-rest-framework.org/topics/api-clients/#javascript-client-library

本文分享自微信公众号 - 随心DevOps(heart-devops)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [实战篇] Python 运维中使用并发

    今天从大哥手里接了一个需求: 验证一下新的 Docker 镜像仓库(Docker Registry)是否迁移成功了 简单粗暴的方法就是拿到老仓库中的镜像列表(I...

    临书
  • 使用 React 和 Django REST Framework 构建你的网站

    在我们最近的工作中,构建网站使用的架构是带有 Django REST Framework(DRF)后端的 React 前端。它们是通过在前端使用 axios(前...

    临书
  • 三分钟使用 Python 处理 Nginx 日志

    有什么 有 14 台机器(意味着我们有14份日志) 一台可以连到这 14 太机器的机器(有 Python 2.6) 要做什么 获取 14 台机器上某时间段内...

    临书
  • 部署NGINX Plus作为API网关(第一部分)——NGINX

    HTTP API是现代应用架构的核心。HTTP协议使开发者可以更快地构建应用并使应用的维护变得更加容易。HTTP API提供了一套通用的接口,这使得在任意的应用...

    Techeek
  • 五分钟入门 Dingo API

    Dingo API帮助您轻松快速地构建自己的API。虽然这个方案的目标是尽可能保持灵活性,但它仍然不能涵盖所有情况并解决所有问题。

    CrazyCodes
  • 一个“爆款”成功的API,都离不开这8条设计准则

    我已经看过很多API设计相关的文章和优秀的REST API设计教程。他们通常讨论的是适当的编码技巧和如何在给定的语言中暴露接口。尽管那些是很有用也是很需要的,但...

    BestSDK
  • 程序员必备网站之一:API Coding

    它的主要作用,是收集与汇总诸多与 API 相关的开放接口、学习资源、工具教程等内容,帮助开发者减少信息检索成本和学习成本。

    GitHubDaily
  • 好雨云帮一周问答集锦(2.6-2.12)

    Rainbond开源
  • 如何为SAP API Portal上创建的API增添API key验证保护功能

    假设我在SAP API Portal上开发了一个API,不想让它被匿名用户免费调用,换言之,仅当一个消费者拥有合法的API key时,才能调用这个API.

    Jerry Wang
  • 50多种适合机器学习和预测应用的API,你的选择是?(2018年版本)

    对于做工程项目和搞科研的人来说,有现成的模块或工具使用是一件多么美妙的事情啊,无需访问源码或理解内部工作机制的细节即可完成相应的任务。常用的方法是调用一些API...

    用户3578099

扫码关注云+社区

领取腾讯云代金券