1

这是一个相当广泛的问题,但我问它是因为我相信它可以用(至少)例子来回答。这也是一个似乎缺乏信息的话题。当我查找有关 Django 的 API 框架(例如 Tastypie 或其他)的信息时,我找不到有关我为什么要使用它的信息。他们只是简单地说明了它们相对于其他 API 框架的优势。

Tastypie 的 github 的自述文件指出:

You need an API that is RESTful and uses HTTP well.

我吗?有人可以说服我吗?同样,我为什么要使用 API 框架?我应该设计我的 Web 应用程序以使用上述框架吗?它们有哪些用例?

请耐心等待问题的范围。我已经阅读了大量有关 REST 本身的内容,但同样,在设计 Web 应用程序以使用 RESTful API 或根本没有 API 时,我几乎找不到正确的做法。

谢谢,

典范RG

4

1 回答 1

2

如果您确实首先知道要设计什么,那么理想情况下,这种问题应该是不言自明的。我的意思不是简明扼要,而是说如果你的设计目标很明确,那么你应该知道什么时候 API 框架是有价值的。您误解了来自 sweetpie 文档的声明:“您需要一个 RESTful 并且很好地使用 HTTP 的 API。”。如果您看到,它是名为“Why Tastypie”的部分的一部分。它的意思是,如果您寻求的是一个很好地使用 HTTP 的 RESTful API,那么您需要美味派。他们并没有告诉你你确实需要这个。只是对于确实有这些需求的人来说,这是一个推荐的解决方案。

从一般的角度来看,假设您想为您的 django 项目创建一个 API。有不同的方式来设计你的 API,但是一个非常被接受的格式是 REST。这种模式使 URL 在读取、更新、创建和删除方面非常易于理解和预测。现在让我们假设您想使用这种流行且广为接受的 REST 模式创建您的 API...

创建 API 时,有一定数量的功能很常见,几乎是样板。您必须在 django 项目中查询模型并返回完整或子集的字段,甚至是该数据的自定义格式。这就是我们开始了解 API 框架的好处的地方......

让我向您提出这个问题……如果存在一个框架,该框架具有一组强大的功能,涵盖了 API 的最常见需求,您是否愿意从头开始编写所有代码?这与您选择使用 django 而不是编写自己的网站的原因几乎相同。

django 有两个非常流行的 API 框架:taftypie活塞
,它们都提供了相似的功能,可以让你快速启动和运行。您可以创建一个映射到模型的处理程序类,默认情况下,您可以通过多种格式(json、yaml 等)对它进行完全 CRUD 访问。这两个框架都假设您通常希望围绕 django 模型绑定处理程序,尽管您不限于此。

身份验证:框架为您处理它几乎就像创建您要使用的类型的实例并将其分配给处理程序一样容易。

格式:(前面提到过)您的 api 可以自动处理多种数据格式,如 json、yaml、xml 等。

底线是框架可以消除不断重复此功能的繁琐任务。所有的辛苦工作都完成了。您只需要编写特定的处理函数并将它们映射到 url。准备好出发。

显然,如果您只需要一些简单的处理程序,您可以编写一些视图并手动处理您的请求对象和返回值。但是,当您想要创建更强大的 API 时,请节省时间并使用为您奠定基础的东西。

除此之外,只需查看美味派或活塞的教程,即可了解开始导出已绑定到模型的资源是多么容易。

于 2012-05-07T04:34:43.287 回答