= !MapGuide RFC 105 - Enhance feature service !GetCapabilities API = This page contains a change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||July 20, 2010|| ||Last Modified||Bruce Dechant July 27, 2010|| ||Author||Bruce Dechant|| ||RFC Status||adopted|| ||Implementation Status||implemented|| ||Proposed Milestone||2.3|| ||Assigned PSC guide(s)||Bruce Dechant|| ||'''Voting History'''|||| ||+1||Bob, Bruce, Haris, Jackie, Jason, Paul, Tom, Trevor, Zac|| ||+0|||| ||-0|||| ||-1|||| ||Abstained|||| == Overview == This RFC proposes to add a NEW !GetCapabilites() API to the feature service which contains an additional connection string parameter. This new method should only be used to get connection-based capabilities on WFS and WMS providers until FDO specifies how connection-based connections should behave; use on any other providers may cause compatibility problems in the future. == Motivation == The existing Feature service !GetCapabilties() API works correctly for most providers, but fails to return the true capabilities of the server connected to by a WFS/WMS provider because there is no way to specify the connection string containing the server. Here is a subset of the WFS capabilities showing the differences. WFS provider returned capabilites (existing API): {{{ false true }}} WFS provider returned capabilites (NEW API with server specified in connection string): {{{ Comparison Like Spatial EnvelopeIntersects Intersects false true }}} == Proposed Solution == Create a NEW !GetCapabilities() API that takes an additional connection string parameter. Existing API: (This will not change) {{{ MgByteReader* GetCapabilities(CREFSTRING providerName); }}} Proposed NEW API: {{{ MgByteReader* GetCapabilities(CREFSTRING providerName, CREFSTRING connectionString); }}} Note: This NEW API will behave exactly the same as the old API if it is given an empty string as the connection string parameter. == Implications == This change will NOT break existing API compatibility. == Test Plan == !Build/Run on !Windows/Linux. == !Funding/Resources == Supplied by Autodesk.