【问题标题】:Populate web page using API result directly from API server使用直接来自 API 服务器的 API 结果填充网页
【发布时间】:2020-07-22 23:19:36
【问题描述】:

首先很抱歉,如果以前有人问过这个问题,但我是新手,所以即使有,我也不知道我什至会用什么语言来寻找它。

我开始学习 REST API,这让我开始思考。是否可以直接从 API 服务器将 JSON 响应加载到用户的浏览器中并绕过您自己的服务器?

假设您有一个运行在服务器上的 Django 应用程序,该应用程序使用图形 API 访问来自 Outlook.com 的电子邮件。

我假设一个普通的流程会是这样的: 用户请求->你的服务器->graph api->你的服务器->用户浏览器。

在它继续呈现给用户浏览器之前第二次访问您的服务器似乎是一种浪费。

有没有一种方法可以让 Django 应用程序渲染一个模板并有效地告诉浏览器“期望来自 X 源的一些数据,并将其放置在此模板中的 y 位置”?

【问题讨论】:

    标签: django api rest


    【解决方案1】:

    你可以用 javascript 做到这一点。您必须在模板中包含脚本标记,或者使用代码创建并包含一些静态 javascript 文件。

    我建议学习和使用jQuery javascript 库,因为它使您所说的更容易实现。研究 ajax 请求,这些是您绕过自己的服务器直接向另一台服务器发出请求所需的内容

    【讨论】:

    • 感谢您的回复。很高兴知道!这种技术有名字吗?
    • 我想我已经找到了你在说什么。跨域资源共享 (CORS)。这是你的意思吗? developer.mozilla.org/en-US/docs/Web/HTTP/CORS
    • 关闭!在跨不同域共享 cookie / 静态文件等内容时,CORS 变得更加重要。听起来您只想显示从 API 获取的一些数据。如果是这种情况,这里是 the docs 到 jQuery 的 ajax 功能
    • 再次感谢。我投了赞成票,但它不算数,因为我的代表太低了。我想我对 OAuth 过程将是服务器端的想法感到困惑,所以我想知道您如何协调授权“客户端服务器”端,但直接向用户的浏览器提供信息。看起来关键是使用 OAuth 流,该流以某种方式向用户的浏览器提供访问令牌,以便 Ajax 直接进行 API 调用。我会更仔细地查看您提供的内容。干杯!
    • 当然,祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多