SWC API Help

Softwarecatalogus API (SWCAPI)
 Inleiding
Deze api is ontwikkeld voor gebruik van de Softwarecatalogus in combinatie met een ArchiMedeswiki, zoals GEMMA Online, Wilma Online en VeRA Online
 Installatie
In de local settings moeten de volgende aanroepen en parameters gezet worden:
WikiXL_Loader::loadExtension( "SWCAPI" ); 
Hiermee wordt de extensie geladen.```
$wgAPIMaxResultSize = "20000000"; 
Deze parameter geeft aan wat de maximale grootte is van de API-output, in dit geval 20 Mb. Dit is nodig als de exportbestanden groot worden.
Indien er referentiearchitectuurspecifieke variabelen worden gebruikt voor bepaalde eigenschappen (bv bij GEMMA is dit het geval) dienen deze in de localsettings te worden aangegeven.
$egSWClabel = 'GEMMA label';
$egSWCstatus = 'GEMMA status';
$egSWCsubstatus = 'GEMMA subtype';
$egSWCthema = 'GEMMA thema';
$egSWCtype = 'GEMMA type';
De default variabelen beginnen met 'SWC_' en hoeven dus niet expliciet gedefnieerd te worden.
Beperk de labelinformatie in de views die worden gegenereerd in de softwarecatalogus
$egSWC_APISimpleLabelDisplayModel
 Onderdelen 
SWCAPI.php
het basisbestand van de API
 SWCAPI_body.php
Dit is een extensie op ApiBase, de API-constructie van mediawiki.
 List API
Een voorbeeldaanroep is:
api.php?action=swcquery&output=list$listtopic=standards&modelid=d61cf2cd-314e-45f0-8040-24c09b17c63a&version=2&format=jsonfm. 
De parameters die gebruikt worden:
 action=swcquery, de naam van de API
 output=list, lijst met voorkomens van de betreffende listtopic
 listtopic='naam van de lijst', bij output=list. ondersteunde lijsten:
 
 models
 referencecomponents
 standards
 standardversions
 standardclassifications
 applicationfunctions
 businessfunctions
 applicationservices
 views
 targetgroups
 domaingroups
 businessfunctiongroups
 
 
 modelid=id van het model waar deze lijst op gebaseerd is
 version=1,2
 
 version 1 wordt niet meer ondersteunt
 version 2, is default. 
 wordt nog gebruikt voor backwards compatibility
 
 
 format=json, jsonfm, xml, xmlfm
 
 ondersteunde formaten zijn json en xml
 suffix 'fm' staat voor 'formatted' om een leesbare output te krijgen.
 
 
 View API
Een voorbeeldaanroep is
/api.php?action=swcquery&output=viewdiagram&view=9865115e-61a6-4952-95b7-c0c759dd6b81&modelid=2b2b88ba-8efe-46d3-8b40-47af290bc418&imageformat=svg&debug=true
De parameters die gebruikt worden:
 action=swcquery, de naam van de API
 output=viewdiagram
 view=id van de view 
 modelid=id van het model waar deze lijst op gebaseerd is
 version=1,2
 
 version 1 wordt niet meer ondersteunt
 version 2, is default. 
 wordt nog gebruikt voor backwards compatibility
 
 
 format=json, jsonfm, xml, xmlfm
 
 ondersteunde formaten zijn json en xml
 suffix 'fm' staat voor 'formatted' om een leesbare output te krijgen.
 
 
Hiermee wordt een view gegenereerd op basis van een view uit de referentiearchtiectuur gemapt met data vauit de Softwarecatalogus. Voorwaarde is dat de SVG bestaat in de wiki.
 Export API
Een voorbeeldaanroep is:
/api.php?action=swcquery&output=archimate&modelid=d7cafdc5-5918-4257-80a3-777aac2705d1&format=json
De parameters die gebruikt worden:
 action=swcquery, de naam van de API
 output=archimate
 modelid=id van het model waar deze lijst op gebaseerd is
 format=json, jsonfm, xml, xmlfm
 
 ondersteunde formaten zijn json en xml
 suffix 'fm' staat voor 'formatted' om een leesbare output te krijgen.
 
 
Daarmee ontstaat een bestand in AMEFF, dat ingelezen kan worden in een AMEFF-import-ondersteunend architectuurtool. Voorwaarde is dat er een AMEFF-export door de wiki is gegenereerd. Om te weten of aan deze voorwaarde is voldaan, ga naar de pagina DisplayArchiMateExports. Dit is een overzicht dat aangeeft welke ArchiMedes-modellen er bestaan en of deze een export hebben én of deze actueel zijn.
 SWCAPI.archimatexmldomwriter.php
Dit is de code voor het creëren van de export. De export voegt data uit de softwarecatalogus samen met de inhoud van de referentiearchitectuur.
 SWCAPI.diffprocessor.php
Dit is de code die twee XML-outputs kan vergelijken en dit weergeeft in een tabel.
 SWCAPI.functions.php
Dit is de code voor generieke functies die door de verschillende classes worden gebruikt.
 SWCAPI.i18n.php
Dit is het internationalisatie-bestand van deze extensie.
 SWCAPI.JSON.handler.php
Deze zorgt voor het inlezen en wegschrijven in JSON-formaat
 SWCAPI.parserfunctions.php
Parserfuncties en magic words die in de wiki gebruikt worden, bv voor DisplayArchiMateExports
 SWCAPI.test.php
Een speciale pagina (SWC API Test) voor het testen van de API. Deze moet nog verder geoptimaliseerd worden!!
 SWCAPI.view.php
Deze code zorgt voor het genereren van views op basis van de referentiearchtiectuurviews met daarop gemapt de data uit de Softwarecatalogus. Dit gebeurt op basis van een text-merge van de bestaande SVG, aangevuld met SWC-data die in het bestaande SVG-bestand wordt toegevoegd.
 model (map)
Hierin staan een viertal classes voor het weergeven van een view
resources (map)
Hierin staat CSS-code voor het netjes weergeven van tabellen.
 Test
De verschillende API-aanroepen staan in wiki/extension/main/SWC API Test.wiki. En is aan te roepen met de wiki-pagina: SWC API Test.
Formulieren met data zijn te bereiken via de url .../extensions/SWCAPI/test/
Ook kan gebruik gemaakt worden van de API Sandbox