使用 Python DJANGO 构建 REST API - 第 1 部分🐍
🙏 感谢您的阅读!
目录
* 🤓简介
* 📦什么是 API
* 🕸 HTTP 方法的语义
* 🤔 HTTP 方法
* 🤠关于 DJANGO 和 DJANGO REST 框架
* ▶入门
* 🙏谢谢
🤓 简介
哈喽,亲爱的黑客们!祝大家工作周愉快!今天我们开启新系列,学习如何使用 Python 和 Django Rest 框架构建 REST应用程序编程接口。
这一系列需要你保持好心情,做好阅读的准备,玩得开心,我们一起学习!🎉
请随时通过Twitter、Instagram或LinkedIn与我联系
我们开始吧!
📦什么是 API
API 代表应用程序编程接口 (API)。它代表一组用于构建和集成应用软件的定义和协议。换句话说,它是一种以编程方式与独立软件组件或资源交互的方式。Web
服务最初设计为使用SOAP(简单对象访问协议)进行通信。SOAP 是一种通过 HTTP 发送 XML 文档的消息传递协议。但如今,大多数基于 Web 的 API 都使用 REST(表述性状态转移)作为架构风格。
您可能会问 REST 到底是什么?
REST 由Roy Fielding 于 2000 年在其博士论文中正式提出,他在论文中这样解释 REST 架构:
表述性状态转移 (REST) 样式是对分布式超媒体系统中架构元素的抽象。REST 忽略了组件实现和协议语法的细节,从而专注于组件的角色、组件与其他组件交互的约束以及组件对重要数据元素的解释。它涵盖了对组件、连接器和数据的基本约束,这些约束定义了 Web 架构的基础,从而定义了 Web 作为基于网络的应用程序的行为本质。
使用 REST 架构的好处:
- 组件交互的性能,这可能是用户感知性能和网络效率的主要因素;
- 可扩展性
- 统一界面的简单性
- 可修改组件以满足不断变化的需求(即使在应用程序运行时);
- 服务代理对组件之间通信的可见性;
- 通过将程序代码与数据一起移动来实现组件的可移植性;
- 当组件、连接器或数据出现故障时,系统级抵抗故障的可靠性。
🕸 HTTP 方法的语义
由于我们正在构建 REST API,特别是基于 HTTP 的 REST API,因此 REST API 的基本结构是:
- 基本 URI,例如http://my-api.example.com/
- 标准HTTP 请求方法(GET、POST、PUT 和 DELETE)
- 定义状态转换数据元素的媒体类型。当前表示告知客户端如何编写转换到所有下一个可用应用程序状态的请求。
🤔 HTTP 方法
得到
GET 方法请求指定资源的表述。使用 GET 的请求应该仅检索数据。
头
HEAD 方法要求的响应与 GET 请求的响应相同,但没有响应主体。
邮政
POST 方法用于向指定资源提交实体,通常会导致服务器状态改变或产生副作用。
放
PUT 方法用请求有效负载替换目标资源的所有当前表示。
删除
DELETE 方法删除指定的资源。
修补
PATCH 方法用于对资源进行部分修改。
🤠 关于 DJANGO 和 DJANGO REST 框架
Django 是一个高级 Python Web 框架,旨在促进快速开发,并追求简洁实用的设计。它由经验丰富的开发人员构建,解决了 Web 开发中的许多难题,让您可以专注于编写应用,而无需重新设计轮子。它是免费且开源的。Django
REST 框架是一个强大而灵活的 Web API 构建工具包。以下是您可能想要使用 REST 框架的一些原因:
- Web 可浏览 API 为您的开发人员带来了巨大的可用性优势。
- 身份验证策略包括 OAuth1a 和 OAuth2 的包。
- 支持 ORM 和非 ORM 数据源的序列化。
- 可完全自定义 - 如果您不需要更强大的功能,只需使用基于常规功能的视图。
- 丰富的文档和强大的社区支持。
- 受到 Mozilla、Red Hat、Heroku 和 Eventbrite 等国际知名公司的使用和信赖。
不要放弃,我们正在取得进展!
▶ 入门
要求
Python - v3.9.2
PostgreSQL - v12.2(pgAdmin 4 -可选)
Django - v3.1.7
Django Rest Framework - v3.12.2
psycopg2 - v2.8.6
您还需要您选择的 IDE,我正在使用Jet Brains PyCharm 社区版,我强烈推荐它!
❗ 如果你还没有添加 Python,那么你应该将它添加到你的环境变量中
所以,你需要熟悉这些内容,当然,REST 范式的实际主题以及 HTTP 的范围要广泛得多。因此,我鼓励你阅读更多相关内容。以下是一些有用的链接:
在下一章中,我们将创建项目,设置Django和Django 休息框架,并开始编写我们的模型、视图、序列化器等...
敬请期待!🚀
🙏 感谢您的阅读!
参考文献:
学校笔记...
学校书籍...
请发表评论,告诉我关于您自己、您的工作、评论您的想法并与我联系!
祝你黑客愉快!😊
鏂囩珷鏉ユ簮锛�https://dev.to/devlazar/build-the-rest-api-using-python-django-part-1-1334