Postcode online opvragen met JSON

Over samengebruik, ODBC, webpublishing, synchroniseren, lay-outs mobiel, berekeningen mobiel en scripts mobiel.
Gebruikersavatar
René Ros
Site Admin
Berichten: 50
Lid geworden op: 26 feb 2017 20:46

Postcode online opvragen met JSON

Bericht door René Ros » 15 mei 2018 01:06

Al jaren wil iedereen een postcode-tabel in zijn database maar het was altijd duur, omslachtig en niet-actueel. Tegenwoordig zijn er on-line diensten en de JSON-functies van FileMaker 16 passen daar prima bij.

De website Postcode API biedt een interessante dienst om on-line gegevens op basis van postcode en huisnummer op te vragen. Na registratie krijgt u de benodigde API key en tot 100 aanroepen per dag is de dienst gratis.
De informatie is afkomstig van de Basisregistraties Adressen en Gebouwen (BAG) van de overheid. Het wordt continu geactualiseerd om de foutmarge te minimaliseren en nieuwe postcodes up-to-date te houden.

De webdienst wordt met een URL aangeroepen waarin postcode en huisnummer zijn opgenomen en het resultaat wordt in JSON-opmaak geretourneerd. Met de JSON-functies van FileMaker 16 is de data eenvoudig uit het resultaat te halen en in velden te plaatsen. Of andere toepassingen die u zelf bedenkt.
De straat, plaats en provincie kunnen zo snel en eenvoudig in het record van bijvoorbeeld een nieuwe klant geplaatst worden. Maar ook gemeente, soort pand, gebruik, woonoppervlakte, bouwjaar en kaartcoördinaten zijn beschikbaar.

De code hieronder heeft een eenvoudige versie van een mogelijk script. Het voorbeeldbestand toont ook de uitgebreidere mogelijkheden.

Code: Selecteer alles

Variabele instellen [ $apikey; Waarde: "-Uw eigen API-key hier-" ]
Variabele instellen [ $url; Waarde:"https://api.postcodeapi.nu/v2/addresses/" & "?postcode=" & Postcode & "&number=" & Huisnummer ]
Variabele instellen [ $urlopties; Waarde:"--header \"X-Api-Key: " & $apikey & "\" --dump-header $result_header --show-error" ]

Invoegen vanuit URL [ Selecteren; Geen dialoogvenster ; $result; $url; Opties voor cURL: $urlopties ]

If [ Get ( LaatsteFout ) = 0 and GetAsNumber ( MiddleWords ( $result_header ; 3 ; 1 ) ) = 200 ]
  Variabele instellen [ $adresdata; Waarde:JSONGetElement ( $result ; "_embedded.addresses[0]" ) ]
  Veld instellen [ PostcodeData::Straat; JSONGetElement ( $adresdata ; "street" ) ]
  Veld instellen [ PostcodeData::Plaats; JSONGetElement ( $adresdata ; "city.label" ) ]
  Veld instellen [ PostcodeData::Provincie; JSONGetElement ( $adresdata ; "province.label" ) ]
End If
Met vriendelijke groet,
René Ros

FMTraining
Hét FileMaker trainingsinstituut van Nederland.

Plaats reactie

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast