Luracast Restler不在Google App Launcher上工作

我想在Google Cloud(基于Google App Engine GAE的Joomla和Restler RESTful API Server)上创建一个带有子域的网站:

http:// api.restlerongooglecloud .com用于混合应用程序(基于Restler API服务智能手机,如Android,iOS,Windows Phone)

博客:http:// joomla.restlerongooglecloud .com(Joomla blog on GAE Launcher正在很好地工作,我在这个链接上跟着指南:http:// forum.joomla .org / viewtopic.php?f = 706&t = 828565&p = 3114492 )

http:// www.restlerongooglecloud .com为主页。

在我将实时网站上传到GAE Cloud之前,我尝试测试Restler是否可以正常使用Google App Launcher。

目录结构是

GAEproject-root / api / ...用于Restler 3.0 RC3

GAEproject-root / joomla /用于博客

GAEproject-root / app.yaml

我的app.yaml如下所示:

application: restlerongae
version: 1

runtime: php

api_version: 1



handlers:
## api images
- url: /api/(.*.(ico$|jpg$|png$|gif$))
  static_files: api/1
  upload: api/(.*.(ico$|jpg$|png$|gif$))
  application_readable: true

## api html
- url: /api/(.*.(htm$|html$|css$|js$))
  static_files: api/1
  upload: api/(.*.(htm$|html$|css$|js$))
  application_readable: true

## api test1
- url: /api/(.*)
  script: api/public/examples/_001_helloworld/index.php

当我运行网站并指向Restler 3.0 RC5的例子时:

http:// localhost / api / public / examples / _001_helloworld / say / hello我得到以下错误:

{ "error": { "code": 404, "message": "Not Found" }, "debug": { "source": "Routes.php:359 at route         stage", "stages": { "success": [ "get" ], "failure": [ "route", "negotiate", "message" ] } } }

我试图弄清楚为什么会出现这个错误,但不幸的是,我不太成功,并且面向对象的PHP和Restler是新的。

请帮忙,我该如何解决这个错误。

由于GAE不使用“.htaccess”文件或Apache,因此如何使用“mod_rewrite.php”建模“Aapache mod_rewrite功能”请在此处查看更多详细信息:https:// developers.google .com / appengine / docs / php /配置/ mod_rewrite的

进一步:

由于应用程序的分布式特性,App Engine不支持写入本地文件。 相反,必须保存的数据应存储在分布式数据存储中。 有关更多信息,请参阅运行时沙箱上的文档

App Engine应用程序不能:

写入文件系统。 应用程序必须使用App Engine数据存储来存储持久性数据。 从文件系统中读取是允许的,并且随应用程序上传的所有应用程序文件都可用。

直接打开一个套接字或访问另一台主机。 应用程序可以使用App Engine URL提取服务分别向端口80和443上的其他主机发出HTTP和HTTPS请求。

产生子进程或线程。 一个Web应用程序的请求必须在几秒钟内在一个进程中处理。 需要很长时间才能响应的进程将被终止以避免Web服务器过载。

进行其他类型的系统调用。

GAE为Google云端存储提供了一个流封装,使得使用该服务非常简单。 假设您已经完成了GCS上的先决条件文件,可以使用文档中所示的标准PHP文件处理函数来访问。

$contents = file_get_contents($file);
var_dump($contents); // prints: hello world
?>

我认为HumanReadableCache.php中的代码需要更改为使用gs:// bucket / file来实现缓存。 (apiVersionMap自动生成的文件)我不是一个真正的OOP_PHP程序员来替换/编辑HumanReadableCache.php中的代码,所以你可以请帮忙,想出GAE版本的Restler? 非常感谢。


你可以尝试使用RC6,它修改了HumanReadableCache版本,它不检查文件的可写性

在您的index.php中执行以下操作来映射数据gs路径的保存

use LuracastRestlerRestler;
use LuracastRestlerHumanReadableCache;

HumanReadableCache::$cacheDir = 'gs://bucket'; //replace bucket with your bucket name

$r = new Restler();
//...
链接地址: http://www.djcxy.com/p/66089.html

上一篇: Luracast Restler not working on Google App Launcher

下一篇: UserCredentials with Restler