何时在Django项目中使用RESTful API

时间:2014-09-06 21:26:04

标签: django rest wsgi

我的项目

我有一个用Django编写的后端Web应用程序和一个用HTML / CSS / jQuery编写并包含在PhoneGap中的移动应用程序。我需要移动应用程序与Web应用程序进行通信,我首先想到我将构建自己的REST API。


我的理解

WSGI 规范(基于HTTP),用于定义如何处理 Web服务器之间的通信和一个Python 应用程序,基本上是如何将HTTP请求转换为Python对象,而反之亦然。我们需要提供给WSGI服务器(例如gunicorn)的是WSGI应用程序。在Django中,我们通常会在项目的根目录下有一个wsgi.py文件

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

因此Django内置了对WSGI规范的支持,我们程序员甚至不必考虑我们的应用程序如何与Web服务器连接。好的。

REST 是基于 6个约束架构风格,用于定义数据如何传输 strong> 程序分离程序(不一定是Web应用程序)中的组件之间的强项。 RESTful API 是一种可以满足这些约束的API。我听说有一个完整的Django框架,令人惊讶地称为django-rest-framework,它可以帮助开发人员构建REST API。


我的问题

嘿,如果WSGI应用程序已经提供了解析HTTP请求并返回响应的方法,为什么还需要REST API?我的意思是,由于我的移动应用程序不过是嵌入式网页,为什么我只能使用常规网址访问我的网络应用程序并返回取决于发送请求的设备类型的HTML代码?

如果在这种情况下确实不需要REST API,那么Django项目中REST API的目的是什么?什么时候有用?

1 个答案:

答案 0 :(得分:0)

就使用Django Rest Framework而言,它内置了支持来处理许多事情,例如限制,序列化和反序列化django查询集到json和back。它支持与django的auth系统一起使用。

就不使用它而言,我认为使用django视图方法仔细阅读已发布的数据并从json序列化以发送响应,处理身份验证,授权和限制等等没有任何问题...但是这是一个垃圾你最终需要为任何api写的代码加载而不必这样做是一个巨大的突破。

使用像Django Rest Framework这样的东西的另一个好处是社区的贡献。大公司和小公司都使用它。通常,API的目的是让外部各方使用它。 Django Rest Framework之类的东西试图遵循这方面的最佳实践,让您的客户更容易使用您的api。

相关问题