中文翻译版:Django API开发: 使用Python和Django构建web APIs
Django for api是一个基于项目的指南,指导您使用Django和Django REST框架构建现代API。
它适合从未构建过API的初学者,以及希望快速介绍Django基础知识和最佳实践的专业程序员。
Django for APIs - Cover.png
译者:最近正在学习Django for API这本入门书,此仓库是针对该书的一些开源章节翻译,可以快速入门Django,如果大家有什么问题可以提出来。
希望之后通过学习更多的Django API开发相关知识,然后建立一个自己的学习仓库。
“I always advice people - Don't wait ! Do something when you are young, when you have no responsibilities. Invest time in yourself to have great Experiences that are going to enrich you, then you can't possibly lose.” — Steve Jobs
互联网由RESTful API提供支持。在后台,即使最简单的在线任务也涉及到多台计算机相互交互。
API(Application Programming Interface)是描述两台计算机互相通信的一种方式。尽管有多种构建API的方式,但Web APIs--允许在全球范围内传输数据--以RESTful(REp resentaional State Transfer)方式构成了压倒性的结构。
接下来学习如何使用Django和Django REST Framework来构建不同的RESTful web APIs。
Django和Django REST Framework的结合是构建Web API的最流行和可自定义的方法之一,被世界上许多大型科技公司(包括Instagram,Mozilla,Pinterest和Bitbucket)使用。 它还非常适合初学者,因为Django的“含电池”方法掩盖了创建任何Web API所涉及的许多潜在的复杂性和安全风险。
Django于2005年首次发布,当时大多数网站由一个大型整体代码库组成。 “后端”由数据库模型,URL和视图组成,这些模型与HTML,CSS和JavaScript的“前端”模板交互,而HTML,CSS和JavaScript则控制着每个网页的显示布局。
但是,近年来,“ API优先”方法已经成为Web开发中的主要范例。 此方法涉及将后端与前端正式分离。 这意味着Django变成了功能强大的数据库和API,而不仅仅是网站框架。
如今,可以说,在大型公司中,Django被更多地用作后端API而不是完整的整体网站解决方案!
此时一个明显的问题是:“为什么要打扰?” 传统的Django本身可以很好地工作,将Django站点转换为Web API似乎需要做很多工作。 另外,作为开发人员,您必须用另一种编程语言编写专用的前端。
顺便说一下,这种将服务分为不同组件的方法被广泛称为面向服务的体系结构。
然而,事实证明,将前端与后端分离有多个优点。 首先,它可以说是“面向未来的”,因为任何JavaScript前端都可以使用后端API。 鉴于前端库中的更改速度非常快-React仅在2013年发布,而Vue在2014年发布!-这非常有价值。 如果在未来几年内最终将当前的前端框架替换为更新的框架,则后端API可以保持不变。 不需要大的重写。
其次,API可以支持以不同语言和框架编写的多个前端。 考虑到JavaScript用于Web前端,而Android应用程序需要Java编程语言,而iOS应用程序需要Swift编程语言。 使用传统的整体方法,Django网站无法支持这些各种前端。 但是使用内部API,这三个组件都可以与相同的基础数据库后端通信!
第三,可以在系统内部和外部都使用API-first方法。
API-first的主要缺点是,与传统的Django应用程序相比,它需要更多的配置。 但是,正如我们将在本书中看到的那样,出色的Django REST Framework库消除了许多这种复杂性。
有成百上千的第三方应用程序可为Django添加更多功能。 (您可以在Django Packages上看到完整的可搜索列表。)但是Django REST Framework可以说是Django的杀手级应用。
它是成熟的,功能齐全,可自定义,可测试的,并且文档齐全。 它还有目的地模仿了Django的许多传统约定,从而使学习速度更快。 它是用Python编程语言编写的,这是一种很棒,流行且易于访问的语言。
如果您已经了解Django,那么下一步就是学习Django REST Framework。 只需最少的代码,它就可以将任何现有的Django应用程序转换为Web API。
我写这本书的原因是,对于Django REST框架新手来说,显然缺乏良好的资源。 假设似乎每个人都已经了解API,HTTP,REST等。 我自己学习如何构建Web API的旅程令人沮丧...而且我已经对Django足够了解,因此可以写一本书!
本书是我希望以Django REST Framework开头的指南。
第1章首先简要介绍Web API和HTTP协议。
在第2章中,我们将建立一个图书馆书网站,然后向其中添加一个API,以回顾传统Django和Django REST Framework之间的区别。
然后在第3-4章中,我们将构建一个Todo API并将其连接到React前端。 可以使用相同的过程将任何专用的前端(Web,iOS,Android,台式机或其他)连接到Web API后端。
在第5-9章中,我们构建了一个生产就绪的Blog API,其中包含完整的CRUD功能。 我们还将介绍深度权限,用户身份验证,视图集,路由器,文档等。
可以在Github上在线找到所有章节的完整源代码。
Django和Django REST Framework是一种强大且易于访问的构建Web API的方法。 到本书结尾,您将能够使用现代最佳实践从头开始正确构建自己的Web API。 您将能够以最少的代码将任何现有的Django网站扩展到网络API。 让我们开始!