使用 Django Rest Framework 创建的每个 API 都是 REST API 吗?
Is every API created with Django Rest Framework an REST API?
我只是想知道 API 是用 DRF 创建的这一事实是否意味着它真的是一个 Rest Api?或者有什么重要的事情要记住才能让它真正成为 REST 吗?
当我与端点通信时,我会在请求中发送 JWT,所以我相信它是无状态的。
其余端点的命名约定可能也很重要。但是还有什么要记住的,所以我可以把我的 Api 称为休息 Api?
我引用自 https://www.redhat.com/en/topics/api/what-is-a-rest-api:
”
为了使 API 被视为 RESTful,它必须符合以下条件:
- 由客户端、服务器和资源组成的客户端-服务器架构,请求通过 HTTP 管理。
- 无状态客户端-服务器通信,这意味着在获取请求之间不存储客户端信息,并且每个请求都是独立且未连接的。
- 简化客户端-服务器交互的可缓存数据。
- 组件之间的统一接口,以便以标准形式传输信息。这要求:
- 请求的资源是可识别的,并且与发送给客户的陈述分开。
- 资源可以由客户端通过他们收到的表示来操作,因为表示包含足够的信息来这样做。
返回给客户端的自描述消息有足够的信息来描述客户端应该如何处理它。
- hypertext/hypermedia 可用,这意味着在访问资源后,客户端应该能够使用超链接找到他们可以执行的所有其他当前可用操作。
- 组织每种类型的服务器(负责安全、负载平衡等的服务器)的分层系统涉及将请求的信息检索到层次结构中,客户端不可见。
- 按需代码(可选):能够在请求时将可执行代码从服务器发送到客户端,从而扩展客户端功能。
“
Roy Fielding 在此处 https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven.
关于什么不应称为 REST API 有一个非常详细的答案(自 2008 年起)
最后也是最重要的答案是 DRF 自己对你的问题的答案,你可以在这里找到:
他们明确指出 DRF 是一个网络 api 工具包,可帮助指导您构建超媒体 API 但不强制执行。
我只是想知道 API 是用 DRF 创建的这一事实是否意味着它真的是一个 Rest Api?或者有什么重要的事情要记住才能让它真正成为 REST 吗?
当我与端点通信时,我会在请求中发送 JWT,所以我相信它是无状态的。 其余端点的命名约定可能也很重要。但是还有什么要记住的,所以我可以把我的 Api 称为休息 Api?
我引用自 https://www.redhat.com/en/topics/api/what-is-a-rest-api:
” 为了使 API 被视为 RESTful,它必须符合以下条件:
- 由客户端、服务器和资源组成的客户端-服务器架构,请求通过 HTTP 管理。
- 无状态客户端-服务器通信,这意味着在获取请求之间不存储客户端信息,并且每个请求都是独立且未连接的。
- 简化客户端-服务器交互的可缓存数据。
- 组件之间的统一接口,以便以标准形式传输信息。这要求:
- 请求的资源是可识别的,并且与发送给客户的陈述分开。
- 资源可以由客户端通过他们收到的表示来操作,因为表示包含足够的信息来这样做。 返回给客户端的自描述消息有足够的信息来描述客户端应该如何处理它。
- hypertext/hypermedia 可用,这意味着在访问资源后,客户端应该能够使用超链接找到他们可以执行的所有其他当前可用操作。
- 组织每种类型的服务器(负责安全、负载平衡等的服务器)的分层系统涉及将请求的信息检索到层次结构中,客户端不可见。
- 按需代码(可选):能够在请求时将可执行代码从服务器发送到客户端,从而扩展客户端功能。 “
Roy Fielding 在此处 https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven.
关于什么不应称为 REST API 有一个非常详细的答案(自 2008 年起)最后也是最重要的答案是 DRF 自己对你的问题的答案,你可以在这里找到:
他们明确指出 DRF 是一个网络 api 工具包,可帮助指导您构建超媒体 API 但不强制执行。