Beste lezer,

Om te beginnen ben ik een leek op het gebied van programmeren en ben op zoek naar advies van jullie!

Momenteel ben ik bezig met een project waarbij ik verschillende databases, voornamelijk MySQL, maar zeker ook andere type databases zoals .csv, .txt, .xml en .xls wil koppelen aan een website/platform.
Het is de bedoeling dat obv van een zoekopdracht op het platform/website er een request naar de aangesloten databases gaat en er wordt teruggekoppeld of er informatie in de database zit die voldoet aan de zoekopdracht.

Na wat eigen onderzoek heb ik gelezen dat het middels PHP mogelijk is om een MySQL database te koppelen. Is het met PHP ook mogelijk om de andere type databases te koppelen?
Zijn is mogelijk 'standaard' tools of scripts die voor deze koppeling kunnen zorgen en op welke manier krijg ik de informatie uit de verschillende databases?

(Excuus als dit wat veel vragen zijn, maar ik probeer het voor mezelf duidelijk te hebben hoe het werkt aangezien ik het als complete leek, erg interessant vind!)


Met vriendelijke groet,

Casper
Je gaat altijd wel een kleine vertraging hebben als je 20 databases wil uitlezen naar één grote op je server. Beste wat je hier kan doen is een console script draaien in combinatie met een queue om al die data in te lezen. Op die manier gebeurt alles op je server en merkt de gebruiker hier niets van als deze de website gaat bezoeken. De request van de gebruiker naar de server en je API-calls gebeuren onafhankelijk van elkaar op deze manier. Frequentie bepaal je hiervan zelf, maar je mag je server ook niet teveel belasten.

Maar:
Indien het van belang is dat de data up to date is moet je misschien inderdaad een API endpoint voorzien voor jouw globale database, maar dan moet je ervoor zorgen dat die 20 shops een API-call sturen naar jou om de voorraad etc. up te daten. Dan moet jij zelf niet gaan "vragen" om data aan die 20 shops.
Het belang van een up to date voorraad staat wel centraal. Want zonder kloppende informatie is onmogelijk om te zorgen voor een goede klantbeleving.

Inderdaad een mogelijkheid voor de shops om wijzigingen in hun voorraad door te geven is daarom echt belangrijk.
Is het nodig om iedere shop in dezelfde 'taal' te laten communiceren met de API? Zou het kunnen dat de aangeleverde informatie, in een bepaald stadium tussen de API-call en de daadwerkelijke wijziging in de globale database, nog wordt geconverteerd naar bijvoorbeeld MySQL?

Na een zoekactie op Google wordt ik overspoelt met verschillende informatie. Is er een tool/programma om een API te maken? Of bestaan er een soort van 'standaard' die als basis kan worden gebruikt?
Nee, een REST-api is universeel. Je doet gewoon een request van een bepaald type naar de endpoint dus het maakt niet uit in welke taal dat geschreven is die call.

De verwerking binnen je API zorgt ervoor dat bij jou de data up to date geraakt, dus "converteren" is hier niet aan de orde. Je zorgt binnen je verwerking er gewoon voor dat je je database update wanneer je dat type request binnenkrijgt.

Misschien een verre schot voor de boeg: waarschijnlijk gaat dit alles wel (technisch) lukken en misschien krijg je die winkels zelfs zo ver om jou direct van informatie te voorzien, maar... in zekere zin heb je dan nog steeds een wiel uitgevonden voor die shops.

Hoe cool zou het zijn om hier echt een standaard van te maken (en misschien is die er al?), zodat *iedereen* op een uniforme wijze voorraadbeheergegevens kan uitwisselen? Dit zou de drempel voor winkels ook een stuk lager maken, immers, ze hoeven dan maar één extensie te installeren om al de geïnteresseerde partijen te bedienen, in plaats van het aanbrengen van een custom ding per individuele partij.

Dit lijkt mij ook het idee van een standaard, iedereen maakt gebruik van hetzelfde ding, in tegenstelling tot het steeds opnieuw creëren van een eigen standaard...

Of je gaat ergens in het midden zitten, net zoals payment service providers, en slaat dan een brug tussen alle mogelijke systemen die er al zijn, en een gestandaardiseerd eindpunt voor de afnemers. Welk specifiek systeem elke individuele partij dan gebruikt is dan niet langer relevant.
Er zijn al verschillende bedrijven die dit type datakoppelingen leveren voor retail en e-commerce. En zij kunnen vrijwel elk denkbaar type input omzetten in bijna elke gewenste output.

Ik kan me niet voorstellen dat jouw applicatie hetzelfde gaat doen, want dan had je die partijen wel gekend. Bovendien heb je geen schijn van kans als je niet weet hoe een WMS (warehouse management system) ongeveer werkt.

Je zult echt concreter in kaart moeten brengen wie en wat je precies wilt gaan koppelen, anders blijft het bij luchtfietserij.
Hoewel het topic al best een informatieve uitstraling heeft, sluit mij bij Ward aan, en vooral omdat het topic begint met: "Om te beginnen ben ik een leek op het gebied van programmeren en ben op zoek naar advies van jullie!"

Met weinig programmeer-ervaring zal je dit niet zo eenvoudig kunnen opbouwen. Als je weinig van programmeren af weet, begin dan liever aan simpele dingen en zet complexe koppelingssystemen en WMS'en een tijdje in de ijskast totdat je echt meer ervaring met programmeren hebt opgedaan. Anders heb je kans dat je in de knel komt, en dat de moeite voor niks is.

Ter vergelijking: Tijdens mijn begin aan PHP in 2004 had ik al moeite om een fatsoenlijk forum bij mijn site te bouwen, want er waren echt een hoop dingen om rekening mee te houden (telling van reacties/topics, rechten, koppelingen met diverse tabellen. Uiteindelijk is het gelukt, maar een WMS-systeem is overigens ook een behoorlijk basaal systeem wat nog complexer is, en waarbij je ook kennis moet hebben van bepaalde theorieën over het beheren van producten. Dat gaat zelfs verder tot aan details zoals aantallen, vormen, kleuren en prijzen.

Reageren