Functionele beschrijving view functie

LET OP ook deze functie moet een modelid hebben. Omdat de toekomstige view-ids niet uniek zijn over de modellen heen.

  • /gemma/gemma_2/view/id-129083291890821
  • /gemma/gemma_softwarecatalogus/view/id-129083291890821



Omschrijving[bewerken]

De softwarecatalogus kan met deze functie een GEMMA architectuurplaat laten renderen met daarop ingevuld de pakketten die een gemeente, samenwerking of leverancier heeft geregistreerd.. Softwarecatalogus vraagt aan GEMMA Online om een plot van een GEMMA view. De API heeft de volgende mogelijkheden:

  • Servicecall voor het genereren van specifieke view met daarop geplot de meegestuurde referentiecomponenten en de ervoor gebruikte pakketten
  • Servicecall retourneert een URL naar gegeneerde plaat
    • Kan SVG of PNG, via het Rendering attribuut.
  • Servicecall retourneert een imagemap resultaat aan

Beveiliging[bewerken]

Alle gegenereerde platen worden opgeslagen op onze applicatieserver. Omdat de views gevoelige informatie kunnen bevatten worden de URLS die gegenereerd gehashed. Deze hash bestaat uit een base64 encoded string die vervolgens met een IV wordt geserialiseerd. Wij (ArchiXL) leveren een token bestand aan waarmee je de base6e-encoded string mee kan deserializeren. Let op: de beveiliging staat momenteel uit.

Eisen[bewerken]

Veld Inhoud Voorbeeld
$key Encryptie: sha256 encoded hash van het tokenbestand. hash( 'sha256', $token );
$iv Eerste 16 karakters van de $key substr( hash( 'sha256', $token), 0, 16 );
$resultaat De decryptie met AES-256-CBC van de base64-encoded string met de $key en $iv string openssl_decrypt( base64_decode( $string ), 'AES-256-CBC', $key, 0, $iv );

Voorbeeldcode deserialisatie[bewerken]

$string  = "TkVnYzFqMm5lNlRQcEcxWlpZVHJFSjZNUGVma2lweDQzTEt2cm5hc3poKzZpNmFFcEJXdmZ1QUpteTlwNWJBMEYrazB0VVNPK0FnVXdnZ2x0ZHdHOHBkUnRYWmcyUWxobDMxa3ZPeVFyYmp6ZVUrM0pUdlpWU0hzdjlFTlIzRjA=";
$token = file_get_contents('archixl.token');
$key = hash('sha256', $token);
$iv = substr( hash( 'sha256', $token ), 0, 16 );
$result = openssl_decrypt( base64_decode( $string ), 'AES-256-CBC', $key, 0, $iv );

Input/output[bewerken]

API aanroep met versieaanduiding: api.php?action=gemma&view=<GUID van de gevraagde VIEW>&format=<format>. De te mappen gegevens worden als een POST actie in JSON formaat geleverd aan deze URL, kijk naar voorbeeld op het formulier

  • alle opmaak die nodig is om een plaat te tonen wordt in de json file meegegeven, in plaats van de situatie dat de API deze intelligentie moet gaan berekenen, daarmee houd je de opmaak ook flexibeler. GEMMA Online kent alles van het GEMMA Model. De SWC bevat alle kennis van Softwarepakketten, en blijft flexibel in de gewenste weergave, zonder aanpassingen in de GEMMA API.

Invoer[bewerken]

Verplichte attributen om mee te geven via GET[bewerken]

Veld Verplicht Toelichting
viewid Ja De ID van de te renderen architectuurplaat
imageformat Ja Welk formaat moet worden gebruikt. Standaard worden SVG gebruikt. Mogelijke opties: SVG, PNG.
size Nee Als PNG gekozen wordt, is het mogelijk om zelf een breedte in pixels aan te geven. Maximaal 10.000 pixels

Verplichte attributen om mee te geven via POST[bewerken]

Veld Verplicht Toelichting
json Ja JSON geserializeerde string.

Verplichte inhoud JSON velden[bewerken]

Het JSON veld moet de volgende eigenschappen bevatten:

Eigenschap Verplicht Toelichting
Title Ja De regel de titel van het model. Geplaatst boven in de view, gecentreerd
Infoboxes Ja Lijst met 1 of meer infoboxes
Pakketten Ja Lijst met 1 of meer pakketten
Eigenschappen Infoboxes[bewerken]

De waarde infoboxes moet een waarde hebben van de volgende attributen:

Eigenschap Verplicht Toelichting
Infoboxtitle Ja De regel de titel van het model. Geplaatst boven in de view.
Infoboxposition Ja Positie van de infobox, kan left op right zijn.
Infoboxlines Ja Lijst met regels, kan 1 of meerdere regels bevatten.
Infoboxlines omschrijving[bewerken]

Let op: er kunnen meerdere definities van de infoboxlines zijn. Als dit het geval is, verwachten wij een array!

Eigenschap Verplicht Toelichting
Style Ja CSS style van de tekstregel
Value Ja Tekstregel inhoud
Eigenschappen Pakketten[bewerken]

De waarde Pakketten moet een waarde hebben van de volgende attributen:

Uitvoer[bewerken]

De uitvoer is in een door uw gespecifieerd formaat beschikbaar. Uitvoer velden:

Eigenschap Toelichting
warnings Placeholder voor waarschuwingen. Let op; om de waarde uit te lezen moet je subset 'result' bekijken.
warnings.result String met alle foutmeldingen. Explode \n om nieuwe regels uit te lezen.
viewdiagrams Lijst met items. Zie item definitie hieropnder.
viewdiagrams.item.id ID van de gegenereerde plaat
viewdiagrams.item.urlenc Gehashde string van de plaaturl
viewdiagrams.item.imagemap Collectie van (html) area-tag attributen. Zie w3schools.map voor meer informatie. Uitvoer attributen: coords, href, alt.

Foutmeldingen[bewerken]

De API kan verschillende foutmeldingen terug geven. Let op; bij foutmeldingen wordt de API call direct geannuleerd. Er zit een onderscheid tussen warnings en foutmeldingen. De volgende foutmeldingen zijn mogelijk:

Melding Omschrijving
Geen POST ontvangen Het is niet mogelijk om een view te genereren zonder POST actie.
Ongeldige json De aangeleverde JSON in de POST bevat geen juiste waarde.
Geen JSON data ontvangen Er is geen JSON aangeleverd in de POST actie. Let op: het naam van het veld dat we moeten ontvangen is 'json'.
Er is geen valide pakket informatie ontvangen Er is geen juiste informatie ontvangen voor het veld 'Pakketten'. Zie link voor de opmaak.
Er zijn geen pakketten ontvangen Er zijn geen pakketgegevens ontvangen. Zie link voor de opmaak.
Er is geen valide infobox informatie ontvangen Er is geen juiste informatie ontvangen voor het veld 'Infoboxes'. Zie link voor de opmaak.
Er zijn geen infoboxes ontvangen Er zijn geen infoboxes ontvangen. Zie link voor de opmaak.
Geen referentiecomponenten in bestand aanwezig bij pakket: $1 ($2) Een pakket moet altijd een referentiecomponennt bevatten. Zie link voor de juiste opmaak.
Geen ReferentiecomponentID in bestand aanwezig bij pakket ($1) ($2) Het pakket mist het veld 'ReferentiecomponentID'.
Geen ReferentiecomponentURL in bestand aanwezig bij pakket ($1) ($2) Het pakket mist het veld 'ReferentiecomponentURL'.
Geen geldige ReferentiecomponentURL in bestand aanwezig bij pakket ($1) ($2) Het veld heeft een ongeldige waarde. De juiste waarde is: http(s)://(www).(domain).(ext)/*
Pakketregel was niet gevonden, of is leeg De waarde mag niet leeg zijn.
Pakketstyle was niet gevonden, of is leeg De waarde mag niet leeg zijn.

Waarschuwingen[bewerken]

Waarschuwingen stoppen het script niet; maar worden enkel ter informatie getoond. De volgende waarschuwingen zijn mogelijk:

Melding Omschrijving
Kon view met id: $1 niet genereren Onze imageserver heeft geen geldige waarde terug gegeven, of de opgegeven View heeft geen juiste waarde.
Er is een niet bekend ReferentiecomponentID opgegeven ($1) Er is een ongeldige of een niet bestaande referentiecomponent id meegeleverd.

Specificaties voor weergave in Softwarecatalogus[bewerken]

Let op de weergave van de pakketten en referentiecomponeten kent de volgende specificaties:

  • Als een softwarepakket een relatie heeft met een referentiecomponent moet deze ook visueel worden weergegeven binnen de betreffende referentiecomponent
  • Als er geen relaties is, wordt alleen de referentiecomponent getoond 'as is'.
  • De naam van het referentiecomponent wordt boven uitgelijnd ipv in het midden
  • Weergave van pakketregel op scherm conform volgend format: <leverancier>:<spatie><naam pakket><spatie><versie pakket><spatie>-<spatie><status pakket>-<spatie><cbs codes van de gebruikende gemeenten>
  • Per referentiecomponent is er voor elk softwarepakket één regel beschikbaar.
  • Bij standaard referentiecomponent is de inschatting dat er maximaal vijf regels passen. Dit wordt dynamisch bepaald, bv als op platen er ruimte is voor meer regels moet dit ook opgevuld kunnen worden.
  • Indien het aantal regels niet meer (leesbaar past) binnen een referentiecomponent wordt er een '*' achter de naam van het referentiecomponent gezet, hetgeen betekent dat er meerdere softwarepakketten zijn. Door te klikken op deze naam wordt de gebruiker naar de achterliggende URL gebracht waarin het totaal overzicht staat.
  • Indien de naam van het referentiecomponent te lang is om goed te worden weergegeven in de ruimte die beschikbaar is, worden de naam afgebroken en verschijnen er drie punten '...'. Let op dat er nog ruimte overblijft voor een '*' als er teveel softwareproducten gekoppeld worden
  • Indien de pakketregel te lang wordt (afhankelijk van de breedte die beschikbaar is. Worden de onderdelen van deze regel ook afgebroken en vervangen door '...'.
  • De afbreking kan plaatsvinden bij Leverancier, Naam pakket of Versie pakket. Status pakket moet altijd volledig getoond worden. Eerste idee is om per onderdeel een percentage te definiëren waarbinnen deze getoond moet worden. Voorbeeld:
    • Leverancier:25%
    • Naam pakket: 25%
    • Versie pakket: 25%
    • Status pakket: 10%
    • Lijst CBS codes van gemeenten die het pakket gebruiken 15%

Voorbeeld (zonder de CBS codes):

800px

Sandbox[bewerken]

Kies bij View-id in het formulier voor GEMMA Referentiecomponenten om de meest representatieve view te krijgen.

Deze pagina is het laatst bewerkt op 23 mrt 2023 om 14:59.