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 媒体类型。