开发从gmaps扩展的嵌入式js / maps库

时间:2012-04-17 13:33:44

标签: php api codeigniter

我目前有一个网络应用,它使用Google地图API,PHP和MySQL在地图上填充自定义地图气泡和标记。

目前,该应用由我们托管并由我们管理,并在客户端页面上作为iframe包含在内,但这非常令人厌烦......

我想开发一个可以包含在页面上的API /库,然后将代码注入到div容器中(就像Google地图一样)。 但是,我不知道要搜索什么或要阅读什么来学习。

我有一个基本的rest api,它被配置为以json / jsonp格式向授权客户端提供只读功能。我正在使用Phil Sturgeon的REST-SERVER库进行CI。

以下是当前格式的链接,我们在没有滚动条的iframe中提取此页面。 http://fhaz.mapitusa.com

更新:我找到了部分解决方案..网页小工具http://alexmarandon.com/articles/web_widget_jquery/

我需要开发一个Web小部件。

我需要知道:

  1. 学习内容
  2. 了解哪种类型的编程方法
  3. 查找示例
  4. 有哪些选项可以摆脱iframe并使用某种“硬嵌入”。

1 个答案:

答案 0 :(得分:1)

你没有大声说出来,但是因为你特别提到你现在有一个只读api我想你也想要发送命令到(你的)服务器。我将从查看身份验证方法开始。为此,我会去OAuth。您必须编写一个基本的客户端类,它可以将客户端连接并验证到服务器。这可以非常简单和小巧。 Php甚至有一个pecl扩展(见http://nl.php.net/manual/en/book.oauth.php),这很容易使用。如果你没有安装pecl扩展的可能性,curl也可以做到这一点,即使这不是必要的。 Twitter还对OAuth如何工作提供了很好的解释,并提供了外部资源的链接。看看这个! https://dev.twitter.com/docs/auth/oauth

请注意,在服务器级别,您必须实现自己的角色系统,oauth只允许您的客户端以安全的方式连接到服务器。 IE浏览器。它会让你的“用户”登录到你的应用程序,但不会检查登录的用户是否为例,是否拥有所有权限的管理员用户,只读用户或中间的用户。

如果你已经理顺了OAuth,只需编写一个你想要实现的API调用列表。您应该命名它们,例如:

/map/marker/get
/map/marker/set
/map/bubble/get
...

您的客户端API应该能够进行如下调用:

$api = new MyGreatApi();
$params = array('id' => 3, 'color' => 'red', ...);
$response = $api->call('/map/marker/get', $params);
echo $response;

查看一些oauth库实现,比如推特(https://dev.twitter.com/docs/twitter-libraries#php),或者在运行中使用的真正简单的一位(http:/ /developer.longtailvideo.com/botr/downloads/php-api-kit.zip)

在服务器级别,您捕获api调用并将请求路由到特定控制器(以使用某些MVC术语)。例如,如果您获取调用'/ map / marker / get',您只需explode('/', $call);并搜索正确的类/函数/方法/等等,让它为您做魔术,然后发回输出(这可以像echo $output一样简单),你就可以了!请注意,如果您具有身份验证和角色检查权限,则生成输出的函数可以视为普通,oldschool,php函数。他们没什么特别的!它是api调用的身份验证和路由,应该是您主要关注的问题。

我希望这能澄清你的一些问题并给你一个方向。如果我误解了你的问题,请纠正我!