Wat heb je nodig om een webservice op te zetten?
Ik ben mij aan het orienteren op het opzetten en inrichten van een webservice. Het betreft een toepassing waarbij ik gebruikers vanuit excel naar mijn eigen webservice wil leiden. Een voorbeeld van de excelfunctie waar mijn gebruikers gebruik van moeten kunnen maken ziet er bijvoorbeeld als volgt uit:
WEBSERVICE(HYPERLINK("https://geodata.nationaalgeoregister.nl/locatieserver/v2/free?wt=xml&rows=1&fq=type:adres&q=postcode:"1023AB" & " AND huis_nlt:" & "112"))
De webservice heeft tot doel om bijv. van een productcode de omschrijving op te halen. Het betreft een CSV-bestand met iets meer dan 1 mln regels (twee kolommen: productcode en omschrijving).
Ik heb zelf geen enkele ervaring met webservices, anders dan dat ik bovengenoemd voorbeeld van geodata als gebruiker veelvuldig raadpleeg. En naar aanleiding daarvan vroeg ik me af of ik zelf ook een webservice zou kunnen opzetten.
Mijn vraag is wat ik nodig heb om hiervoor een webservice in te richten?
Moet er een SQL-databse gebouwd worden waar het CSV-bestand in wordt opgenomem of kan dat ook eenvoudiger?
In wat voor omgeving moet de webservice draaien? Kan dat door gebruik te maken van een Microsoft dienst (Azure, of een andere applicatie)?
Gewijzigd op 23/11/2022 16:02:28 door - Ariën -
Je kan inderdaad gebruik maken van cloud-oplossingen, zoals Azure of Amazon, maar daar heb ik geen ervaring mee.
Ok. Nee sorteren en filteren is allemaal niet nodig. Het betreft een eenvoudige Lookup-functie. De gebruiker zal naar verwachting een lijst met gemiddeld 5.000-10.000 productcodes hebben in excel, waarbij voor elke productcode simpelweg de omschrijving moet worden opgehaald.
Ik denk dat een database nog steeds het beste is voor een goede performance.
https://support.microsoft.com/nl-nl/office/webservice-functie-0546a35a-ecc6-4739-aed7-c0b7ce1562c4
De WEBSERVICE()-functie in Excel roept dus een URL aan, en zet de gegevens vermoedelijk in Excel. Het maakt niet uit waar die webservice zich bevindt, het mag op internet zijn of het intranet.
De URL mag niet langer dan 2k zijn, en de waarde die de webservice terug geeft mag niet langer dan 32k zijn.
Dat lijkt me dan toch niet zo moeilijk.
Het protocol in het voorbeeld is HTTP, maar ik zou daar HTTPS van maken (HTTP met versleuteling tegen meekijken) tenzij je op een DMZ zit op het eigen intranet.
Voor HTTP heb je nodig een webserver die een resultaat teruggeeft afhankelijk van de query, ofwel dynamische content.
Ik zou je aanraden om XAMPP op een Windows testomgeving te zetten met Excel 2013+, en vanuit Excel links te maken zoals "http://127.0.0.1:80/?q=zoekterm". Vervolgens kan je met een editor een het bestand index.php maken in de webroot map, en dynamische content maken, met of zonder de database van XAMPP.
https://www.apachefriends.org/docs/hosting-xampp-on-azure.html. Zit ik dan in de goede richting?
En de tweede vraag is hoe ik iemand kan vinden die iets dergelijks voor mij kan opzetten?
Dank. Ik ken XAMPP niet, maar begrijp ik goed dat deze software in principe op een lokale machine draait en dus 24/7 aan moet staan om de wegservice beschikbaar te houden? Ik heb even gezocht of zoiets ook in de cloud kan en kom dan deze tutorial tegen: En de tweede vraag is hoe ik iemand kan vinden die iets dergelijks voor mij kan opzetten?
X staan voor Windows/Linux/Mac
A staat voor Apache als webserver
M staat voor MySQL/MariaDB
P staat voor PHP
P staat voor Perl, wat volgens mij haast niet meer gebruikt wordt.
Op wat voor ondersteund platform je het installeert, dat ligt bij jouw. maar als je een Azure abo'tje hebt bij Microsoft, dan kan je die link inderdaad volgen. En anders moet je de Download-link volgen, en dit op je computer installeren.
Voor de rest is het programmeren met PHP.
Gewijzigd op 22/11/2022 17:53:13 door - Ariën -
Seb Janssen op 22/11/2022 17:30:55:
En de tweede vraag is hoe ik iemand kan vinden die iets dergelijks voor mij kan opzetten?
Als de dienst over internet bereikbaar moet zijn, kan je samenwerken met een hosting-partij. Je kunt shared hosting doen of een VPS, die beheerd wordt door de hoster.
Dan heb je alleen de infrastructuur en heb je nog een dienst nodig die wordt ontwikkeld. Je kunt dit zelf doen, maar dat is zonder kennis niet eenvoudig om het veilig te (blijven) doen. Een alternatief is dat je het laat ontwikkelen door een internetbureau. Er zijn ook full-service internetbureau's die zowel ontwikkeling als hosting doen.
Helder. Ik had even de hoop dat de Microsoft Cloud omgeving (Azure in dit geval) voldoende zou bieden om de webservice via internet bereikbaar te maken, maar daar het dus toch een hosting partij tussen. Ik zal eens navraag doen bij de provider van onze website.
Wat is je kennis tot nu toe?
Seb Janssen op 23/11/2022 10:08:13:
Helder. Ik had even de hoop dat de Microsoft Cloud omgeving (Azure in dit geval) voldoende zou bieden om de webservice via internet bereikbaar te maken, maar daar het dus toch een hosting partij tussen. Ik zal eens navraag doen bij de provider van onze website.
Als je bij een organisatie zit die al gebruik maakt van Azure, dan zou het (technisch) daar ook op moeten kunnen. En als Azure op het intranet draait, is ook de veiligheid een minder groot issue.