URI 后缀与媒体类型的对应关系 |
SuperMap iServer 通过请求 URI 后缀来确定相应的媒体类型,iServer 默认支持的 URI 后缀与媒体类型的对应关系如下表所示:
表 URI 后缀与媒体类型对应关系
URI 后缀 | 媒体类型 |
html | text/html |
xml | application/xml |
kml | application/kml |
georss | application/georss |
json | application/json |
jsonp | application/jsonp |
rjson | application/rjson |
png | image/png |
bmp | image/bmp |
gif | image/gif |
jpg | image/jpg |
jpeg | image/jpeg |
3D | application/realspace |
javascript | application/javascript |
ijs | application/ijs |
flex | application/flex |
flash3d | application/flash3d |
ifx | application/ifx |
silverlight | application/silverlight |
isl | application/isl |
supermapcloud |
application/supermapcloud |
smc |
application/smc |
tianditu |
application/tianditu |
tdt |
application/tdt |
除此之外,默认地,服务器会根据 URI 的后缀名确定媒体类型,形如:“application/后缀名”。例如当 URI 后缀为 cjson 时,服务器就会匹配到“application/cjson”媒体类型,从而选择对应的表述生成器处理,返回媒体类型为“application/cjson”的 HTTP 响应。
在扩展新的表述生成器时,新的媒体类型需要有请求 URI 后缀对应,可以在如下两个位置配置(二选一):
1,iserver-rest-appContext.xml
iserver-rest-appContext.xml 位于:%SuperMap iServer_HOME%/webapps/iserver/WEB-INF/iserver-rest-appContext.xml,在文件如下位置的 <entry/> 节点配置对应关系,可配置多个<entry/>:
<!-- 表述类型与 url 后缀的映射关系。 --> <util:map id="MediaTypeMappingInfoBean"> <!-- <entry key="xml" value="application/xml" /> --> </util:map>
2,Jar:///META-INF/extensions/services/urlmapping/*.properties
*.properties 配置文件位于 Jar 包中,便于部署。内容格式为“* = *”,左侧为 URI 后缀,右侧为对应的媒体类型,多个配置项以回车隔开。
注意:如果在两个位置都进行了配置,则都有效,URI 后缀(key 值)重复时,iserver-rest-appContext.xml 中的配置优先级更高。
作为示例,添加 testurlmapping.properties 文件如下:
abc=application/xml
testurlmapping.properties 打到 Jar 包中指定位置,即:test.jar:///META-INF/extensions/services/urlmapping/testurlmapping.properties,将 test.jar 放入%SuperMap iServer_HOME%\webapps\iserver\WEB-INF\lib 目录。
启动 SuperMap iServer 服务,打开资源页面:http://supermapiserver:8090/iserver/services/map-world/rest,可以看到扩展的表述格式“abc”。
点击“abc”或输入 URI:http://supermapiserver:8090/iserver/services/3D-sample/rest/realspace.abc,可以看到“abc”后缀对应的是 XML 媒体类型。