# 双 Discourse API 系统的用途

**URL:** <https://meta.discourse.org/t/the-purpose-of-the-2-discourse-api-systems/155253>\
**Category:** Product Support\
**Created:** [2020 年6 月 18 日 17:40 UTC](https://meta.discourse.org/t/the-purpose-of-the-2-discourse-api-systems/155253 "2020-06-18T17:40:09Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

作者： ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)\
发布日期： [2020 年6 月 23 日 12:34 UTC](https://meta.discourse.org/t/the-purpose-of-the-2-discourse-api-systems/155253/3 "2020-06-23T12:34:07Z")

</div>

> [@sam](#):
>
> 用户 API 不受此问题影响：用户授权应用后，系统会生成专属的 API 密钥。

那么，管理 API 的主要使用场景是什么？

在我的情况下，我使用它来：

1. 通过 API 调用将数据添加到论坛并展示。另一种方法是通过插件嵌入 Ember/Rails 代码来创建不同类型的数据并展示。我目前选择使用 API，是因为从编程角度看，理解 API 并使用 JavaScript 与之交互，远比掌握 Discourse 代码库、精通 Ember 和 Rails 要容易得多。
2. 允许我开发的独立应用与我的论坛进行交互。

在这两种情况下，用户 API 都无法适用，因为需要检索并展示的数据通常并非特定于某个用户。我理解您的观点，即不应将 API 密钥暴露在前端。为解决这一问题同时仍使用管理 API，我将密钥托管在后台服务中，论坛通过调用该后台服务来间接访问。因此，论坛仅暴露后台服务的端点 URL（这无关紧要），而不会暴露托管在该处的 API 密钥。

---

_[View the full topic](https://meta.discourse.org/t/the-purpose-of-the-2-discourse-api-systems/155253)._
