Third Party¶
Om de term Third Party het best uit te kunnen leggen, moet we deze combineren met een ander woord: Third Party Software.
Third Party Software is een softwareoplossing die door een andere partij wordt beheerd/gemaakt dan jijzelf. Je kunt gebruik maken van deze softwareoplossingen, maar hoe ze werken weet je over het algemeen niet en is ook niet belangrijk, als ze maar werken. Het gebruik van dit soort softwareoplossingen komt veel voor in de ontwikkelwereld. Sterker nog, op het moment dat je een NPM package installeert die je niet zelf hebt ontwikkelt, spreek je al over software van een “derde partij”.
Online beschikbare API Endpoints om GPS coordinaten voor een adres op te zoeken, het weer in Amsterdam te bekijken of een postcode te controleren op geldigheid zijn voorbeelden van Third Party API’s.
Het gebruik van Third Party API’s is handig, omdat je deze functionaliteit niet zelf hoeft te ontwikkelen. Dat scheelt tijd en dus geld! Daarnaast zijn de API’s vaak dusdanig specifiek, dat het een vakgebied op zichzelf is om ze te onderhouden. Niks is gratis in de wereld, en dat geldt des te meer voor dit soort API’s. Je betaald daarom meestal een bedrag per een bepaald aanvragen. Afhankelijk van de populariteit van je website, kunnen deze kosten dus snel oplopen!
Het is daarom belangrijk dit soort API’s vanuit je eigen Backend te benaderen en niet vanuit de Frontend! Meestal heb je een API Key nodig om met de API te kunnen communiceren, en die sleutel mag absoluut niet op straat komen te liggen! Zeker niet als elke aanvraag geld kost.
Sequence Diagram ter illustratie¶
sequenceDiagram;
actor Browser
participant Webserver
participant Backend
participant Database
participant Thirdparty
Browser ->> Webserver: HTTP GET /index.html
activate Webserver
Webserver-->>Browser: index.html
deactivate Webserver
Browser ->> Webserver: HTTP GET /index.ts
activate Webserver
Webserver ->> Browser: /index.ts
deactivate Webserver
Browser ->> Backend: HTTP GET /api/product/{productid}
activate Backend
Backend ->> Database: SQL
deactivate Backend
activate Database
Database -->> Backend: Product data (omschrijving, titel ect)
deactivate Database
activate Backend
Backend ->> Thirdparty: HTTP GET /service/product_price/{productid}
deactivate Backend
activate Thirdparty
Thirdparty ->> Backend : JSON with Product price
deactivate Thirdparty
activate Backend
Backend -->> Browser: JSON with all product data
deactivate Backend