对于应用程序或库或框架来说,RESTful意味着什么?

时间:2014-02-16 18:41:24

标签: rest

我一直试图了解应用程序或库或框架对RESTful意味着什么?例如,为什么说瓶子或瓶子是RESTful而cgi + wsgiref不是?

请您用最小的代码示例来解释一下RESTful应用程序?

2 个答案:

答案 0 :(得分:1)

您要求“构建RESTful应用程序”会显示您的困惑。 REST是一种将建立接口到应用程序的方式,作为Web上的(通常是HTTP)资源的集合,以预期的方式响应标准Web动词(例如,GET)读取,DELETE销毁,PUT更新)。更重要的是,在高质量的RESTful界面中,资源以描述的方式相互链接;客户端永远不需要发明任何资源的名称,因为它只能跟随链接(或者记住它之前看到的URL;这也是合法的)。内容协商也是A-OK;让客户说出首选的资源表示格式,并让服务器提供,如果可以的话。

如果应用程序可以充当(或在)Web服务器中,同时看到有关请求的足够信息(特别是方法,路径和其他标头),那么它可以使用它来呈现RESTful接口。它拥有真正需要的一切。通过为各种约定提供更多支持,一些库堆栈比其他库堆栈更容易,但这只是你需要做多少工作而不是利用其他工具的问题。

答案 1 :(得分:1)

REST是一种架构设计模式;您可以阅读有关各种详细信息的更多信息at wikipedia

我们的想法是在HTTP谓词后面添加含义(GETPOST是您可能熟悉的两个),以便影响数据的更改。使用代表特定实体或实体组的端点(URL)访问API。

简而言之,这就是假设的工作原理:

  • GET获取有关特定实体的信息。
  • POST 创建有关特定实体的新记录
  • PUT更新现有实体的信息。
  • DELETE显然删除了实体的记录。

设计良好的应用程序使用HTTP响应代码(例如您已经习惯的200和404)来指示针对端点的操作结果。

在创建RESTful API和服务方面有大量的材料,以及关于人们如何做对与对错的健康辩论。我把这些研究留给你了。

任何具有HTTP库的语言都可用于为现有数据公开REST API,但有apigeemashery等公司和Google Cloud Endpoints等公司负责照顾为你做的琐事。

对于Python而言,有许多库。其中最受欢迎的一个是Django REST Framework,它与一起使用。还有Flask-RESTful使用

还有this question讨论了Python的更多REST框架。