Brilliancy of quality
Architectuur

JSON API voor mobiele en externe toepassingen

Sapphire I.C.D.S.

Een integratie hoort niet van webpagina-opmaak af te hangen

Een bedrijfsplatform is geen geïsoleerde website meer zodra een mobiele app, chauffeurswerkplek, intern portaal, terminal of partnerdienst wordt aangesloten. HTML-pagina's hiervoor gebruiken levert snel een kwetsbare ontwerpafhankelijkheid op. Directe databasetoegang is gevaarlijker: de externe client gaat bedrijfsregels herhalen, rechten negeren en van het interne opslagschema afhangen.

Sapphire I.C.D.S. biedt hiervoor een afzonderlijke HTTPS JSON API. Zij accepteert gestructureerde verzoeken, retourneert machineleesbare antwoorden, rendert geen gebruikerspagina's en vereist geen kennis van de serverdatabase. De openbare Roadmap vermeldt dit als uitgebrachte basis voor native clients en bedrijfsintegraties.

JSON is het uitwisselingsformaat, niet de hele architectuur

JSON alleen maakt een integratie niet betrouwbaar. Van belang zijn wie de opdracht bepaalt, hoe de gebruiker wordt gevalideerd en waar bedrijfsvalidatie plaatsvindt. De systeem-API verzorgt authenticatie, modules publiceren domeinopdrachten via een apart contract. De client levert actie en gegevens; de server kiest de module, controleert het verzoek en vormt het resultaat.

Webinterface, mobiele app en extern systeem kunnen zo dezelfde domeinlogica gebruiken. Een levering opslaan moet route, locatie, product en rechten op dezelfde wijze controleren, ongeacht het verzendende scherm. De client is verantwoordelijk voor bruikbaarheid, de module voor procescorrectheid.

Sessie en identiteit worden door de server gevalideerd

De API ondersteunt aanmelden, de actuele bevestigde gebruiker, toegangsvernieuwing en afmelden. De client ontvangt een kortlevend toegangstoken en afzonderlijk vernieuwingstoken. Vernieuwing vervangt het paar; de app moet de nieuwe waarden atomair opslaan en een geslaagde vernieuwing niet met de oude waarde herhalen.

Gebruikers-, groeps- of objectvelden in JSON bewijzen geen bevoegdheid. De server leidt identiteit af uit de gevalideerde sessie en bepaalt daarna het gegevensbereik. Een logistieke module mag geen andere route tonen doordat de client een andere chauffeur-id meestuurt; de bedrijfsrol wordt serverzijdig opgelost.

Modules publiceren alleen expliciete acties

De API stelt niet automatisch alle functies beschikbaar. Een module implementeert een API-provider en somt opdrachten op. Integraties kunnen stapsgewijs verschijnen: veilig lezen, beperkte wijzigingen en na controle complexere workflows. Een module zonder extern contract wordt niet beschikbaar door installatie alleen.

Statuswijzigingen gebruiken daarvoor bedoelde verzoeken. De server geeft duidelijke codes voor een ongeldig verzoek, verlopen sessie, weigering, verkeerde methode of tijdelijk ontbrekende afhankelijkheid. De client krijgt een bepaald afhandelpad in plaats van een HTML-foutpagina.

  • De mobiele client verstuurt alleen vereiste gegevens en bewaart tokens beschermd op het apparaat.
  • De API-omgeving valideert sessie, methode en toegestane invoergrootte.
  • De module valideert domeinregels, gebruikersbereik en statustransities.
  • De database blijft achter de serverlaag en wordt niet direct gepubliceerd.

Geschikte bedrijfsscenario's

JSON API is nuttig buiten het centrale backoffice: toegewezen routes, locatiegegevens, geleverde hoeveelheden, retouren of documentstatus in logistiek; een register en bevestigde handeling in administratie; of een toegestane status lezen en een specifieke opdracht starten zonder browserhandelingen na te bootsen.

De Roadmap noemt logistiek, administratie en veldprocessen als natuurlijke richtingen. Dit betekent niet dat voor elk scenario één universeel endpoint bestaat. Gereedheid hangt af van de opdrachten van de geïnstalleerde module; een project vereist een matrix van acties, gegevens, rollen en versies.

JSON API is geen externe MCP

JSON API is voor mobiele en bedrijfstoepassingen met een vooraf ontworpen proces. Externe MCP is voor compatibele AI-clients die tools ontdekken. Hun rechten en publicatiebeleid zijn niet uitwisselbaar.

De API is geen SQL-console op afstand, generator van willekeurige rapporten of belofte van toegang tot alle tabellen. Zij levert bedrijfsopdrachten onder verantwoordelijkheid van een module. Die abstractie is beter bestand tegen schemawijzigingen en veiliger voor lang onderhoud.

Wat de client moet afhandelen

Een native client verwerkt tokenverloop en -vervanging, afmelden, netwerkverlies en herhaalde verzending. Bij wijzigingen moet een bevestigde weigering worden onderscheiden van een onzeker transportresultaat. Zonder afgesproken idempotentie mag een mogelijk uitgevoerde actie niet automatisch worden herhaald. Lokale cache is geen bron van actuele rechten.

Het technische team bepaalt ook contractversies, logging, verzoeklimieten en achterwaartse compatibiliteit. Het platform levert de modulaire omgeving; kwaliteit van een mobiel product hangt af van clientdiscipline en volledigheid van het bedrijfscontract.

Het invoeringspad

Begin met gebruikersscenario's, niet met tabellen. Leg per stap invoer, antwoord, rol, gegevensbereik, toegestane overgangen en herhaalgedrag vast. De module publiceert een minimale opdrachtenset, het mobiele team bouwt de interface en gezamenlijke tests dekken toegestane en verboden gevallen.

De onderneming kan eigen apps ontwikkelen zonder serverlogica te dupliceren. De technisch directeur krijgt een beheerde integratiegrens met gemeenschappelijke authenticatie en modulaire opdrachten. JSON API breidt Sapphire I.C.D.S. voorbij de webinterface uit, terwijl gegevens, rechten en procesregels in de gezaghebbende serveromgeving blijven.