Third Party API’s¶
Op deze pagina vind je een verzameling van Third Party API’s die je kunt gebruiken in je backend.
Alleen vanuit de Backend
Hoewel het mogelijk is om onderstaande APIs met Fetch vanuit de Frontend aan te roepen, is dit absoluut niet de bedoeling! Zeker voor API’s waar je API Keys nodig hebt is dat een groot beveiligingsrisico. Implementeer dus een Service in de Backend om deze API’s aan te roepen! Als je daarbij gebruik maakt van een Interface, kun je meerdere implementaties hebben voor bijvoorbeeld een IDiscountService
!
LucaStars Games API¶
In de webshop wordt iedere opgeleverde game van het vorige project aangeboden. Je kunt de initiële dataset als JSON of CSV via de volgende API van de LucaStars website ophalen:
Gelimiteerd gebruik
Het is niet de bedoeling dat je deze API constant aanroept vanuit je webshop. Je gebruikt de API slechts één keer om een bestand te downloaden en verwerkt vervolgens de data in je eigen database. Je kunt er uiteraard wel voor kiezen om dit op afroep te automatiseren in je backend!
Gebruik van afbeeldingen
Wat betreft de afbeeldingen van de geïmporteerde producten: gebruik de gegeven URLs om de afbeeldingen op je webshop te tonen! Alle afbeeldingen bij elkaar zijn namelijk ongeveer 100MB aan data. Ten eerste zal dit je repository onnodig groot en trager maken, ten tweede worden de afbeeldingen dan ook meermaals naar de HBO-ICT.Cloud gekopieërd bij het uitrollen. Voor je eigen producten ben je natuurlijk wel vrij om je eigen afbeeldingen te uploaden.
E-mail API¶
Je kunt met de HBO-ICT.Cloud API e-mails versturen. Hieronder de technische informatie die je nodig:
POST https://api.hbo-ict.cloud/mail
Authorization: Bearer [HBO-ICT.Cloud API Key]
{
"from": {
"name": "You",
"address": "you@hbo-ict.cloud"
},
"to": [
{
"name": "Lennard Fonteijn",
"address": "l.c.j.fonteijn@hva.nl"
}
],
"subject": "Just a test!",
"html": "<h1>Hello Lennard!</h1><p>This is an email :)</p>"
}
Response
{
"message": "..."
}
Payment Service Provider¶
Een Payment Service Provider (PSP) wordt gebruikt om betalingen te verwerken. Denk hierbij onder andere aan Mollie, Adyen, Stripe en Global Collect. Als je ooit eens wat online hebt besteld, heb je een PSP gebruikt! Zonder een PSP moet je zelf koppelen met iDeal (in Nederland), PayPal of VISA/MasterCard om allerlei soorten betalingen te ondersteunen. Dat is een hoop gedoe die een PSP je bespaard.
Voor dit project heeft LucaStars een namaak PSP beschikbaar, uiteraard wordt er dan geen echte betaling gedaan, maar je kunt hier wel je bestelproces op aansluiten.
POST https://[PSP URL]/payments
Authorization: Bearer [API Key]
{
"currency": "EUR",
"value": 9.99,
"description": "Order #12345",
"redirectUrl": "https://[Webshop URL]/validate-payment/12345"
}
Response
{
"transactionId": 123,
"checkoutUrl": https://[PSP URL]/checkout/123
}
GET https://[PSP URL]/payments/[Transaction ID]
Authorization: Bearer [API Key]
Response
{
"status": "paid"
}
De flow is ongeveer als volgt:
- Je maakt een
payment
-object aan met wat informatie. Je vertelt de PSP ook waar de gebruiker naartoe gestuurd moet worden na een betaling (redirectUrl
). - Je krijgt een
transactionId
, deze moet je onthouden in de database. DecheckoutUrl
gebruik je om de gebruiker naar een betaalpagina te sturen. - Op de betaalpagina rekent de gebruiker normaliter af met bijvoorbeeld iDeal of PayPal, in dit geval kan je een betaalstatus kiezen (
paid
,canceled
). - De betaalpagina stuurt de gebruiker terug naar de
redirectUrl
. - Op basis van de orderId in de URL (bijv.
12345
) haal je detransactionId
uit de database en controleer je of de statuspaid
is.
API momenteel nog niet beschikbaar
Deze API is momenteel nog niet beschikbaar, maar zal dat vanaf 14 april wel zijn! Je kunt deze API dus wel alvast opnemen in je technisch ontwerp.
Zipcode API¶
Deze API geeft je de mogelijkheid om een Land + Postcode + Huisnummer om te zetten in een straatnaam. Dit is een functionaliteit die je veel webshops ziet gebruiken en maakt het invullen van een adres voor de gebruiker heel simpel.
Een échte Zipcode API dataset is zeer kostbaar, daarom heeft LucaStars een namaak Zipcode API beschikbaar gesteld. De data die eruit komt is nep, maar wel consistent, waardoor het bruikbaar is in een bestelproces.
POST http://[Zipcode API URL]/zipcode
Authorization: Bearer [API Key]
{
countryCode: "NL",
postalCode: "1234AB",
houseNumber: "29"
}
Response
{
"street": "Wegisweg"
"city": "Amsterdam",
"state": "Noord-Holland",
}
API momenteel nog niet beschikbaar
Deze API is momentele nog niet beschikbaar, maar zal dat vanaf 14 april wel zijn! Je kunt deze API dus wel alvast opnemen in je technisch ontwerp.
Discount Code Service¶
Deze service geeft kortingcodes terug. De kortingscodes kunnen gevalideerd en ingewisseld worden door klanten, waarna ze niet meer geldig zijn.
De broncode van deze service is geschreven in Java en is hier te vinden, mocht je zelf aanpassingen willen maken.
De documentatie van de API vind je hier.
Deze service kun je ook zelf uitrollen op Oege.
Willekeurige data
Deze API geeft (nu nog) willekeurige data terug. Het gebruik hiervan in de webshop is daarom waarschijnlijk niet in alle situaties nuttig, tenzij je zelf de broncode gaat aanpassen.
Product Price Service¶
Deze service geeft (dummy) prijsinformatie terug over een product.
De broncode van deze service is geschreven in Java en is hier te vinden, mocht je zelf aanpassingen willen maken.
De documentatie van de API vind je hier.
Deze service kun je ook zelf uitrollen op Oege.
Willekeurige data
Deze API geeft (nu nog) willekeurige data terug. Het gebruik hiervan in de webshop is daarom waarschijnlijk niet in alle situaties nuttig, tenzij je zelf de broncode gaat aanpassen.