【问题标题】:Google Cloud Endpoints API with Flask带有 Flask 的 Google Cloud Endpoints API
【发布时间】:2015-07-13 11:15:50
【问题描述】:

伙计们: 我正在考虑基于 Flask 和 SqlAlchemy 构建我的应用程序的服务器端。我正在考虑将这些托管在 Google 云平台上。我对 Google Endpoints API 的承诺很感兴趣,但对我必须在必须为我的 REST 服务编写的函数之上编写的额外代码感到厌烦。

有人使用过 Google App Engine 上的 Flask 与 Google Endpoints 的组合吗?有什么建议/指针吗?

谢谢。

-拉吉

【问题讨论】:

  • 看看this的例子。
  • 谢谢@doru。 Endpoints 如何与您可能编写代码的 REST 端点交互,比如 Flask?

标签: python google-app-engine flask sqlalchemy google-cloud-endpoints


【解决方案1】:

“Google Cloud Endpoints”一词在某种程度上意味着两件事:

  1. 这是一个软件库(Python 包),可让您编写 API 并在 Python 应用程序可以运行的任何地方运行它们
  2. 它也是一项 Google Cloud 服务,可让您
    1. 在不同于其他 GAE 服务(即 UI)的位置查看您的日志
    2. https://console.cloud.google.com/endpoints/portal 上查看 API 使用统计信息以及更多详细信息

将 Cloud Endpoints 视为软件库时,类似于使用 Flask-RESTful 编写 API,但会将您纳入两个设计决策之一:

  1. OpenAPI
  2. Google 远程 RPC

使用endpoints Python 包编写 API 后,您就可以选择如何部署它。您可以将其部署为自己的 GAE 服务或上述云端点服务。在那里部署它基本上是代表您使用 GAE 来运行您的 API(使用endpoints Python 包编写)。

在我看来,Cloud Endpoints 还没有准备好迎接黄金时间,除非您有一个非常简单的 API(即只对数据存储实体执行 CRUD 操作)。我之所以这么说是因为

  1. Cloud Endpoints 仅限于 Python 2.7,该版本将于今年停用
  2. Cloud Endpoints 与其他 Google API Python 包(即文本转语音)有冲突的要求,这意味着您的 API 无法做任何非常有趣的事情。
  3. 正如您所指出的,endpoints 的语法有点冗长,但是,这是因为 Cloud Endpoints 不仅为您提供 API,而且还为其他开发人员提供 OpenAPI/Swagger UI 来探索您的 API。它还处理身份验证等。在考虑使用flask-restful-swagger-2.0 来装饰所有类和方法所需的工作时,我认为endpoints 代码开销是相当合理的。

我花了半周时间尝试编写一个与您的架构相似的应用程序:GAE 上的 Flask UI,Cloud Endpoints 托管我的 API。最后,由于上面的第 1 和第 2 项,我决定放弃它并使用 Flask 作为我的 API 也作为单独的 GAE 服务:这将让日志很容易过滤并给我一些不错的图表来感受使用,延迟等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2017-11-29
    相关资源
    最近更新 更多