| 1 | = !MapGuide RFC 28 - Web Tier APIs for Fusion support = |
| 2 | |
| 3 | This page contains an change request (RFC) for the !MapGuide Open Source project. |
| 4 | More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. |
| 5 | |
| 6 | |
| 7 | == Status == |
| 8 | |
| 9 | ||RFC Template Version||(1.0)|| |
| 10 | ||Submission Date||Aug 20, 2007|| |
| 11 | ||Last Modified||Chris Claydon [[Timestamp]]|| |
| 12 | ||Author||Chris Claydon|| |
| 13 | ||RFC Status||draft|| |
| 14 | ||Implementation Status||under development|| |
| 15 | ||Proposed Milestone||1.3|| |
| 16 | ||Assigned PSC guide(s)||(when determined)|| |
| 17 | ||'''Voting History'''||none|| |
| 18 | |
| 19 | == Overview == |
| 20 | |
| 21 | This RFC contains a proposal for new web tier APIs to facilitate the creation of the resources required to build a web application based on the new "Fusion" framework. |
| 22 | |
| 23 | == Motivation == |
| 24 | |
| 25 | The new application definition framework (aka Fusion) for !MapGuide Open Source web applications is based upon the following components: |
| 26 | |
| 27 | 1) A set of HTML/CSS templates defining the application's layout and appearance. |
| 28 | |
| 29 | 2) A set of "widgets" (e.g. Pan, Zoom, Search etc.) that provide functionality for the application. |
| 30 | |
| 31 | 3) "Application Definition" resources, stored in the MG repository, that provide configuration information for the referenced widgets, and associate them with the panels in an HTML template. |
| 32 | |
| 33 | In order to allow authoring applications to build Application Definitions, it must be possible to enumerate the available templates and widgets, and to retrieve information about them. |
| 34 | |
| 35 | == Proposed Solution == |
| 36 | |
| 37 | The new APIs would be implemented entirely in the web tier. No modifications are required to the MGOS Server, since the Fusion framework will be part of the web tier deployment. |
| 38 | |
| 39 | The APIs would be implemented as HTTP requests, and would use the following operations: |
| 40 | |
| 41 | ENUMERATEAPPLICATIONTEMPLATES |
| 42 | |
| 43 | ENUMERATEAPPLICATIONWIDGETS |
| 44 | |
| 45 | ENUMERATEAPPLICATIONCONTAINERS |
| 46 | |
| 47 | Details of each of the new APIs are as follows: |
| 48 | |
| 49 | === ENUMERATEAPPLICATIONTEMPLATES === |
| 50 | |
| 51 | Request parameters: |
| 52 | |
| 53 | ||FORMAT||text/xml (default) or application/json|| |
| 54 | ||REFRESH||0 (default) or 1 to indicate whether to use cached information or to refresh the list from the source files|| |
| 55 | |
| 56 | Response: |
| 57 | |
| 58 | The response will be in XML or JSON format (depending on the FORMAT parameter) and will return the Name, URL, Description and Preview Image URL for each of the available templates. |
| 59 | |
| 60 | === ENUMERATEAPPLICATIONWIDGETS === |
| 61 | |
| 62 | Request parameters: |
| 63 | |
| 64 | ||FORMAT||text/xml (default) or application/json|| |
| 65 | ||REFRESH||0 (default) or 1 to indicate whether to use cached information or to refresh the list from the source files|| |
| 66 | |
| 67 | Response: |
| 68 | |
| 69 | The response will be in XML or JSON format (depending on the FORMAT parameter) and will return the Name, Description and Preview Image URL for each of the available widgets. |
| 70 | |
| 71 | === ENUMERATEAPPLICATIONCONTAINERS === |
| 72 | |
| 73 | Request parameters: |
| 74 | |
| 75 | ||FORMAT||text/xml (default) or application/json|| |
| 76 | ||REFRESH||0 (default) or 1 to indicate whether to use cached information or to refresh the list from the source files|| |
| 77 | |
| 78 | Response: |
| 79 | |
| 80 | The response will be in XML or JSON format (depending on the FORMAT parameter) and will return the Name, Description and Preview Image URL for each of the available container types. Examples of containers are: Toolbar, Context Menu, Status Bar. |
| 81 | |
| 82 | == Implications == |
| 83 | |
| 84 | The implementation is entierly in the web tier. All APIs are new and do not affect existing APIs or functionality. |
| 85 | |
| 86 | == Test Plan == |
| 87 | |
| 88 | Testing should be carried out by exercising the HTTP APIs in unit tests and via authoring applications. |
| 89 | |
| 90 | == Funding/Resources == |
| 91 | |
| 92 | Funding and resources to be supplied by Autodesk. |