= !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.