1

在寻找构建 REST API 的方法时,我找到了skue(https://code.google.com/p/skue/)。但是,网站上没有太多信息。我的计划是严格按照以下方式构建一个rest api:

Models << Business logics << Restful Resources.

这意味着:模型只能由business logic; restful resources接口是客户端可以直接访问的唯一层。我指定所有这些是为了避免人们建议使用appengine-rest-server.

我的问题是:有没有人成功使用过 Skue?如果是这样,您有什么不介意分享的例子吗?GETPOST足够了,但欢迎更多。如果没有Skue,是否有任何框架允许在 google-app-engine 之上构建这样的 rest-apis?

4

2 回答 2

3

我是 Skuë 的作者。Skuë 在 Bribrí 中的意思是“老鼠”,这是我的国家哥斯达黎加土著群体的语言。

我知道网站上没有足够的信息:(https://code.google.com/p/skue/)

对于想要在自己的项目中使用它的开发人员。很抱歉,我只是没有时间做适当的文档,因为这只是一个副项目,而不是我的日常工作。

但是,我愿意帮助您升级,以便您能够使用它。首先要注意的是它是源代码一部分的小例子。转到该站点,然后单击 Source -> Browse,然后展开“app”分支。

“app”文件夹内的代码代表您自己的 API 实现。包“skue”包含库的实际实现,因此基本上您只需为 Google App Engine 创建 Python 项目并将 skuë 包直接包含在其中。

现在用下载的 main.py 的内容覆盖您的 main.py 文件: main.py on Skuë project

该文件最重要的部分是您将自己的路由放置到资源实现的位置:注意此处使用“ContactResource”。

TASK_HANDLERS = [

                ]

API_HANDLERS = [
                   ('/contacts/(.*)', ContactResource)
               ]

API_DOC = [ ('/', ApiDocumentationResource) ]

浏览到联系人资源实现。

那里有很多事情发生在引擎盖下..但我们的想法是让您不必担心这些。

您需要根据要创建的资源类型从适当的 Resource 父类继承,有四种基本类型:

DocumentResource:文档资源是一个类似于对象实例或数据库记录的单一概念。

CollectionResource:集合资源是服务器管理的资源目录。客户可以提议将新资源添加到集合中。但是,由集合决定是否创建新资源。

StoreResource:存储是客户端管理的资源存储库。存储资源允许 API 客户端将资源放入、取出并决定何时删除它们。

ControllerResource: 控制器资源对过程概念进行建模。控制器资源就像可执行函数,有参数和返回值;输入和输出。

与传统的 Web 应用程序使用 HTML 表单一样,REST API 依赖于控制器资源来执行特定于应用程序的操作,这些操作无法在逻辑上映射到标准方法之一(创建、检索、更新和删除,也称为 CRUD)。

现在看一下ContactResource示例上的“describe_resource”实现。当您从上述基本资源类型继承时,下一步是使用该方法以编程方式向外界描述您的资源。底层 Skuë 实现使用该方法来验证所需参数,并在您对端点执行 OPTIONS 请求时自我描述端点。

最后一步是让您实现要为资源处理的方法 (CRUD)。

再次以 ContactResource 示例为例,该资源处理联系人项目的创建、更新和读取。

我希望这至少可以帮助您了解如何开始使用该库。不过,我将来会创建更好的教程。

与此同时,您可以通过电子邮件与我联系:greivin.lopez@gmail.com,我会向您发送更详细的示例,甚至是符合您要求的内容。

重要提示: 目前 Skuë 项目仅支持 JSON 格式的响应。如果您打算使用另一种格式,则需要创建适当的类来处理它。

来自哥斯达黎加的问候。

于 2012-11-29T01:40:16.593 回答
1

我没有使用过skue,但您正在寻找的内容听起来很适合Google Cloud Endpoints。有关更多详细信息,请参阅我之前关于该主题的答案。

于 2012-11-26T18:08:01.440 回答