【问题标题】:What does my back-end API server need (and not need) when using Apigee or similar proxy services?在使用 Apigee 或类似代理服务时,我的后端 API 服务器需要(而不需要)什么?
【发布时间】:2014-05-18 02:55:58
【问题描述】:

下面是我的场景:我正处于为我的初创公司规划/实施 API 的早期阶段。所说的 API 是我们战略的基础。耶!

我希望使用 Apigee(或类似的)来处理所有肮脏的细节(安全性、节流等),所以我不需要自己实现所有这些。

我无法找到一个推荐列表,其中列出了我的后端 API 服务器应该使用此策略做的事情(更重要的是,不应该做的事情)。

更多技术细节:我计划在我的后端使用 Nginx/FastCGI/Qt/C++,可能不相关。对此后端的调用将仅通过代理 (Apigee)。我将拥有自己的客户端网站和使用 API 作为 dogfood 的内部应用程序。

我正在寻找的是在使用 Apigee 之类的东西作为整体策略的基本组成部分时实现我的 API 方面的最佳实践指南。我不想重新发明任何轮子(或在脚上开枪)!

这甚至是正确的方法吗?

谢谢大家!!

【问题讨论】:

    标签: api backend apigee


    【解决方案1】:

    在流程中放置功能的位置通常是上下文相关的,但在每个代理中放置一些简单的东西:

    1) 密钥管理:使用 Apigee 管理您的 API 密钥并铸造您的访问令牌可为您带来几件事情;未经授权的应用程序的第一道防线和关于开发人员正在做什么的自动分析(从一个应用程序中获得高错误率?联系他们并帮助他们主动解决问题)。

    2) 基本安全策略:一旦您知道应用被允许访问您的 API,就应该在 Apigee 层上运行一些简单的安全策略。有效负载实施(JSON 和 XML 威胁保护、正则表达式以阻止 SQL 注入或其他侵入性代码等内容)。您还可以根据 API 密钥设置配额(不同的开发人员根据您与其密钥关联的产品获得不同级别的访问权限)。您还希望设置峰值拦截,以防止您的 API 流量压倒您的目标服务器。

    3) 响应管理:确保去掉与 API 合同无关的不必要的响应标头(cookie、服务器版本等)。无需告诉您的应用程序开发人员您的目标架构,但有时很难从应用程序服务器中抑制这些标头。您可能还希望规则阻止来自目标服务器的意外响应(例如,可能包含堆栈跟踪的 500 错误)。

    4) 缓存:在 Apigee 中缓存响应的能力推动了许多其他“在哪里做”的问题。但是,能够从 Apigee 返回缓存响应可以将您的延迟减少数百毫秒,从而提高您的每秒事务数和开发人员/消费者的满意度。现在的问题变成了您无需访问目标服务器即可获得缓存响应的细粒度。

    除此之外,它变成了“在哪里完成一项任务最简单、最有效?”例如,JSON 到 XML 之类的东西在 Apigee 中很容易,但在可能在您的后端服务器上运行的其他平台中也很容易。

    【讨论】:

      【解决方案2】:

      好问题 - 披露我为 3scale (http://www.3scale.net) 工作,我们与 Apigee 竞争。不过,我会尝试以中立的方式回答这个问题。

      API 代理的核心应该是处理节流、分析日志记录、密钥执行、一些安全性以及后端节点之间潜在的负载平衡。所以你不应该在后端需要任何这些。所以你应该可以在那里以原始形式提供 API,但是你仍然需要:

      • 确保您拥有的后端端点集随通过的流量而扩展。
      • 各种网关可能会设置您希望在代码中注意的控制标头(例如用户 ID、哈希、安全令牌)。
      • 您可能希望将后端配置为通过网关接受来自其他地方的流量。

      说了这么多 - 我建议您查看 3scale - 我们为 Apigee 提供等效服务,包括 API 网关。它不仅更具成本效益(请参阅网站),而且我们的解决方案还基于您的堆栈中已有的 NGINX - 您可以添加另一个或添加到现有配置中。

      希望对您有所帮助,如果有用,我们很乐意提供更多信息。

      【讨论】:

        【解决方案3】:

        Apigee 4G 堆栈太棒了!他们在许多层面上的实施给我留下了深刻的印象(顺便说一句:“客户”而不是“竞争对手”),公平地说,自从我也看过 3Scale 以来已经有很长时间了,所以我的产品落后于时代

        Apigee 功能非常丰富,速度惊人且轻量级,过程延迟极短。

        除了网关服务之外,Apigee 提供的使用分析功能也是一个主要卖点;在开始使用 Google Analytics(分析)数据之前,我对自己是多么的一无所知,这让我感到很惊讶。

        在此处观看视频:https://community.apigee.com/learn/create-and-manage-apis

        还有一个分析系列。

        【讨论】:

          【解决方案4】:

          科林,

          您正在寻找的是 API 外观最佳实践。 [有或没有 Apigee。]

          以下是 Apigee 人员生成的一些最佳实践类型的内容 - 但更重要的是 - 这些内容并非直接基于使用 Apigee 技术。这些最佳实践适用于任何基于 REST 的 API 外观层。

          希望这会有所帮助。

          1. An eBook on API Façade Patterns
          2. A Video Playlist of API Façade Pattern Webiners

          【讨论】:

            猜你喜欢
            • 2013-01-16
            • 1970-01-01
            • 2018-02-14
            • 2019-04-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-11-28
            相关资源
            最近更新 更多