From: Andrea A. <aa...@op...> - 2009-08-31 09:53:14
|
Gabriel Roldan ha scritto: >> Any comments on the API? The biggest question is whether having a kvp >> Map is overkill or not. And if not, should it still be possible to >> have GET parameters appended into the URL without them being in the >> kvp? > question: what is your intended use for URLType? I see you may want to > append or not your auth token based on whether the url points outside > the server or not... still, I don't think there're programmaticaly > created URLs pointing outside the server? (at least none that I can > think of off the top of my head) Right, at the moment we don't, but in theory we could, or new services might have a need to. With REST extensions and the work David is doing on integrating Javascript and the interest in other scripting languages I think it's fair to assume we'll see other people needing to generate links in their responses: we cannot exclude those will never point outwards. > API wise, in principle the approach is correct. Now that we settled down > the separation of concerns between service response urls (usually schema > locations, either static or dynamically generated like > DescribeFeatureType), the fact is that all URL constructions in > GeoServer go through the RequestUtils.baseUrl(HttpServletRequest) > method, so it seems that's where to inject the extension point? > > I've cooked the following patch which hopefully may simplify a bit the > API and still provide enough context as to create your callback: > <http://pastebin.com/m24ed06a0> > > Please tell me if it seems appropriate or am I missing something. The spirit of the above is right, but the implementation as is won't work. Sampo needs to add a kvp parameter to the request, the existing code uses the proxifier just to change the base url and then adds a extension path and kvp params. That needs to be changed so that the code needing to build a URL passes the base path (http://host:port/geoserver), the extension to the base (/wms), whatever kvp parameter (request=GetMap) so that the utility method building the final url can: - change the base path if needed - change the URL params if needed - assemble a final URL The changes above would be done by calling the URL callbacks (the one that changes the base path would be just another callback). What needs doing is to add the above API and then change the call points that build a URL so that they use the new API (there are around 40 calling points in the code base). Makes sense? Cheers Andrea -- Andrea Aime OpenGeo - http://opengeo.org Expert service straight from the developers. |