gpt4 book ai didi

python - API前端架构

转载 作者:行者123 更新时间:2023-12-01 06:05:16 25 4
gpt4 key购买 nike

我想构建一个作为 API 前端的网站。基本上,前端接受一些用户输入并使用它来查询 API 并检索结果。检索结果后,将显示它们。这一切都是异步完成的。

我的问题是:

  1. 我是否使用 Celery 等工具在后台处理 API 查询?
  2. 假设我使用 AJAX(我会使用),我是否有不同的 URL 来处理用户输入和检索查询结果?
  3. 我是否使用长轮询之类的方法来通过 JavaScript 获取并显示结果?
  4. 考虑到检索结果可以进一步过滤,我正在考虑使用memcached作为存储。这样合适吗?

如果我错过了什么,或者有更好的方法,我很高兴听到。

编辑:我意识到我以错误的方式解释了要求,所以我会尝试改写。基本上,我的网站基于我无法控制的 API。因此,有第 3 方 API,我的应用程序在后端使用 Django,在前端使用 JavaScript、CSS 和 HTML。

这就是我将 Celery 引入其中的原因。在我看来,应用程序的流程是这样的。用户在我的网页上输入所需的信息,当用户提交数据时,该数据会异步发送到我的后端。现在,Celery 用于向第 3 方 API 发送请求并检索数据。与此同时,我的前端不断轮询我的后端以获取数据,并在收到数据时开始显示数据。

最佳答案

你在这里遗漏了一些要点。根据您的要求,我假设您想要构建一个查询(RESTful)API 的前端(html + javascript),它只是一个“讲”HTTP 的服务器。

因此,您的 API 查询与您的服务器有关,即与 Apache 上的 Django 或 Tornado 或.. Celery 无法“处理”您的查询,但它对于后台任务可能很有用。

在客户端,您的 AJAX 调用将触发一些映射到某些 URL 的服务器端 View 。如何定义它们取决于您。查看一些流行的 API (twitter),了解它们的结构。

长轮询与您的“业务”逻辑有关,它定义了一种稍后向客户端呈现数据的方式。

此外,缓存与服务器端性能有关,我们鼓励您使用 memcached 或 redis 之类的东西。

编辑(用于编辑):您的方法没有任何问题。 Celery 是从外部 API 获取数据、然后将结果保存到数据库并当然使用一些缓存的正确工具。然后从客户端进行一些轮询以获得结果。但是,存在一种更优化、非阻塞、优雅的方式来完成同样的事情。您可以使用 Tornado 从外部 API 获取数据,当这些数据准备就绪时,将它们发送到客户端。没有 Celery,没有长轮询。一个很棒的代码片段here .

关于python - API前端架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com