3

我主要在工作中处理 REST json API。所以我对他们很熟悉。但是对于我自己的项目,我正在尝试应用程序引擎,因为我相信它非常适合。

我已经开始在 python 中编写我的逻辑(使用 ferris),并且在阅读更多关于应用程序引擎的内容时,我遇到了 protorpc 和云端点。但是在我读过的大多数示例中,它们似乎和我在 rest api 中所做的一样。使用 json 发出请求,并返回 json 响应。或者一个错误。

我看到的主要区别是,在休息时,端点是基于资源的。以及围绕它们的 HTTP 动词,例如 GET、POST、PUT、DELETE 等。在 RPC 中,每个请求都有自己的端点,而不是基于资源或模型。

两者都被请求,并以 json 响应。所以我认为我没有看到使用 Google 端点的好处。他们是否提供其他一些好处?我可能会看到更好的端点分析跟踪。但是我是否还需要使用 post http 动词来修改内容?

如果我使用某些框架,这些都会改变吗?像django。虽然我目前正在测试 Ferris,它有一个处理 protopc 的消息传递系统。虽然,我还不能休息。

那么我错过了什么?与仅让我的对象方法处理 json 请求相比,端点有什么好处。套接字连接会影响这个吗?

4

1 回答 1

5

您可以通过使用endpoints来制作 RESTful API 来完成这两项工作。

protorpc/endpoints不会神奇地使您的 API 成为 RESTful。必须在endpoints使用protorpc.

使用的好处endpoints是您可以轻松完成大量身份验证工作(假设您要使用 Google 帐户),为您完成序列化/反序列化,可以为您生成您的客户端库,以及更多只能支持 Javascript 客户端。如果这些事情听起来不错,endpoints可能适合您。如果这些东西不适用,那么也许更直接并自己使用 RequestHandlers。

我能够使用endpoints. 它有 3 个主要资源:记录、数据集和移动。Record对象是数据的最小单位。对象是一Dataset组记录。并且该Move对象表示Dataset位置变化的事件。我的 RESTful URI 如下所示:

GET  /records       # Get list of records
GET  /records/<id>  # Get single record
POST /records       # Create records

GET  /datasets      # Get list of datasets
GET  /datasets/<id> # Get single dataset
POST /datasets      # Create dataset

GET  /moves         # Get list of moves
GET  /moves/<id>    # Get single move
POST /moves         # Create move

有了这个,我可以创建数据,组织它并移动它。我能够endpoints在 App Engine 的框架内完全做到这一点,而且它是 RESTful 的。

于 2015-06-08T20:25:27.040 回答