您的位置:首页 > 其它

浅析 AGS REST API(转)

2009-09-29 21:19 162 查看
表述性状态转移(REpresentational State Transfer)简称REST,REST软件架构由Roy Thomas Fielding博士在2000年首次提出,我们可以从他的论文中看到关于REST的详细描述:

英文:http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
中文:http://e2c.91yee.com/posts/show/186

如何将REST解释清楚,InfoQ上有两篇文章:深入浅出REST理解REST软件架构

还有IBMDeveloperWorks上也有一些文章,就不一一列举了,初次接触REST的可以先看看《深入浅出REST》,有兴趣可以Google/Baidu查找更多的相关资料,特别是Fielding博士的论文。直接通读理论有时难免会有些晦涩,而将理论放到实际应用中往往可以得到更好的理解,因此这里我不去讲解REST是什么(我自己还在学习中),但可以先记住《深入浅出REST》中总结的REST五条关键原则:

*为所有“事物”定义ID
*将所有事物链接在一起
*使用标准方法
*资源多重表述
*无状态通信

ArcGIS Server 9.3(简称Ags93)提供了全新的REST API,实现了一些Ags通用功能和服务便于Ags客户端开发,如javascript api。安装了Ags93之后,可以通过"http://<host>/<instance>/services/<folder>"方式来访问服务的根目录,其中"instance"默认为"arcgis/rest",里面列举了当前服务器上所有已启动的server服务,并且可以将这些服务列表导入Google Earth,格式为kmz。REST访问地址中,folder和servicename是对大小写敏感的,folder前面的部分则没有影响。

点击根目录列举的一个服务,页面会展示该服务的所有基本信息,包括地图图层,图层编号,空间参考,部分cache信息,初始化地图显示范围,地图全图显示范围,地图单位,MXD文档基本信息。
myTiledMapServiceLayer =
new esri.layers.ArcGISTiledMapServiceLayer("http://servery.esri.com/arcgis/rest/services/maps/world/MapServer");
myMap.addLayer(myTiledMapServiceLayer);
对图层构建查询功能:
{"href" : "http://servery.esri.com/arcgisoutput/_ags_map26163878476945a499cd7521135dd581.png","width" : 400,"height" : 400,"extent" :{"xmin" : -197.99999664046,"ymin" : -201.201977231281,"xmax" : 197.99999664046,"ymax" : 194.79801604964,"spatialReference" :{"wkid" : 4326}},"scale" : 4.16060604668823E8}
看起来比较杂乱,如果需要阅读性比较好的JSON,需要指定参数"f=pjson"或"f=json&pretty=true",但这样会影响性能,只建议在debug阶段使用:
{
"href" : "http://myserver/arcgisoutput/_ags_mapabab6b08a05a4bf6b1f4047a20ba136b.png",
"width" : 400,
"height" : 400,
"extent" :
{
"xmin" : -197.99999664046,
"ymin" : -201.201977231281,
"xmax" : 197.99999664046,
"ymax" : 194.79801604964,
"spatialReference" :
{"wkid" : 4326}
},
"scale" : 4.16060604668823E8
}
重复REST五条关键原则:

*为所有“事物”定义ID
*将所有事物链接在一起
*使用标准方法
*资源多重表述
*无状态通信

理论的研究经常伴随着复杂、严谨、全面,其实要表达的有时是很简单的道理,慢慢琢磨Ags REST API,会对REST理论有更深入的体会,了解REST,也能更清晰看到Ags REST API的设计结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: