Google Cloud Endpoints与小型网络应用的常规请求处理程序相比?

whe*_*den 9 google-app-engine google-cloud-endpoints

我正在App Engine中使用一个小型webapp,使用Angular作为前端.我查看了Google Cloud Endpoints的文档,但是我很难找到比编写返回JSON的普通处理程序更大的优势.以下是我发现的优点:

  • API资源管理器:方便,但不重要
  • Auth:有用,但实现起来并不十分困难
  • 本机库:对于仅限网络的应用程序来说似乎不太重要

另一方面,指定端点的语法有点难看(与在webapp2,flask等中指定请求处理程序相比).有没有我错过的优势或我不预测的挑战?如果没有,Cloud Endpoints有什么意义?

Ash*_*ish 17

端点是Web和移动应用程序使用的服务的便捷方式,但有限制.我不会推荐它适用于仅限网络的应用.

端点有助于为Web,Android和iOS创建单一数据服务API.通过定义自己的REST/JSON API可以实现同样的目的.与REST/JSON服务的区别在于:

好处

  1. Major:它为Android和iOS设备本机应用程序生成本机客户端库.

  2. 在没有定义任何映射的情况下完成与JSON的转换.

  3. 简单的"Google"身份验证集成(但'仅'Google身份验证,具有实验性OpenID支持)

  4. API资源管理器是一个很好的抽象和管理UI增值(但缺少一些基本的预期功能,如支持'日期'类型参数)

  5. [afterthought]通过在app-engine上使用集成登录和托管的端点,大多数与身份验证相关的安全问题都会卸载到Google

缺点

  1. Major:无法控制JSON转换.您最终将实体结构/代码更改为端点可以处理的内容.例如没有泛型(Java)

  2. 转换期间无法控制错误处理.例如,如果延迟加载调用遇到问题,那么JSON转换失败而不提供内部破坏的详细信息.

  3. 为您的API根加载API的发现服务部分(Google可能不需要它)的浏览器支持很差.

  4. [编辑:不再适用 ]正如@Josh所说,没有自定义域支持.解决方法是在内部使用appengine域进行端点调用,这会带来维护所有环境的域映射的开销.