我主要在工作中处理REST json API.所以我熟悉他们.但对于我自己的项目,我正在尝试app引擎,因为我认为它非常合适.
我已经开始在python中编写我的逻辑(使用ferris),并且在阅读更多应用程序引擎时,我遇到了protorpc和云端点.但在我读过的大部分例子中,他们似乎都在做同样的事情,就像在休息api中做的那样.用json发出请求,然后获得json响应.或者是错误.
我看到的主要区别在于,在休息时,端点基于资源.并且围绕它们的HTTP动词,例如GET,POST,PUT,DELETE等.在RPC中,每个请求都有自己的端点,而不是基于资源或模型.
两者都要求,并与json回应.所以我认为我没有看到使用Google端点的好处.他们是否提供其他一些好处?我可以通过端点看到更好的分析跟踪.但是我还不需要使用post http动词来修改内容吗?
如果我使用某些框架,这会改变吗?像django.虽然我目前正在测试Ferris,它有一个处理protorpc的消息传递系统.虽然,我还没能休息.
那我错过了什么?端点有什么好处,只是让我的对象方法处理一个json请求.套接字连接是否适用于此?
您可以通过使用endpoints
RESTful API 来完成这两项工作.
protorpc
/ endpoints
不会神奇地使您的API RESTful.您必须在使用的endpoints
框架内使您的API RESTful protorpc
.
使用的好处endpoints
是您可以轻松完成大量的身份验证工作(假设您将使用Google帐户),为您完成序列化/反序列化,可以为您生成客户端库,以及更多只支持Javascript客户端.如果这些听起来不错,endpoints
可能适合你.如果这些东西不适用,那么可能更直接并自己使用RequestHandler.
我能够使用简单的API 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的.