<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Uitwisselingsformaten en -protocollen on Leerlijnen KCA</title><link>https://melsk-r.github.io/Leerlijnen-KCA/uitwisselingsformaten-en-protocollen/</link><description>Recent content in Uitwisselingsformaten en -protocollen on Leerlijnen KCA</description><generator>Hugo -- 0.146.0</generator><language>nl</language><lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://melsk-r.github.io/Leerlijnen-KCA/uitwisselingsformaten-en-protocollen/index.xml" rel="self" type="application/rss+xml"/><item><title>4.0 Todo voor Uitwisselformaten</title><link>https://melsk-r.github.io/Leerlijnen-KCA/4.0-todo-voor-uitwisselformaten/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://melsk-r.github.io/Leerlijnen-KCA/4.0-todo-voor-uitwisselformaten/</guid><description>&lt;h2 id="10-todo-lijst-voor-uitwisselformaten">1.0 Todo-lijst voor Uitwisselformaten&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Nr&lt;/th>
&lt;th>Wie&lt;/th>
&lt;th>Wat&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>01&lt;/td>
&lt;td>Johan&lt;/td>
&lt;td>Todo-lijst vullen&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>4.1 XML als uitwisselingsformaat</title><link>https://melsk-r.github.io/Leerlijnen-KCA/4.1-xml-als-uitwisselingsformaat/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://melsk-r.github.io/Leerlijnen-KCA/4.1-xml-als-uitwisselingsformaat/</guid><description>&lt;h2 id="41-xml-als-uitwisselingsformaat">4.1 XML als uitwisselingsformaat&lt;/h2>
&lt;p>Kent XML als uitwisselingsformaat (structuur, syntax, schema&amp;rsquo;s).&lt;/p>
&lt;h3 id="wat-is-xml">Wat is XML?&lt;/h3>
&lt;p>&lt;strong>XML&lt;/strong> (eXtensible Markup Language) is een markup-taal ontworpen voor het opslaan en transporteren van gestructureerde data. In de overheidscontext is XML de ruggengraat van vele uitwisselingstandaarden, waaronder StUF (Standaard Uitwisseling Formaat).&lt;/p>
&lt;h4 id="kernprincipes-van-xml">Kernprincipes van XML:&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Self-describing&lt;/strong>: Data en structuur in één formaat&lt;/li>
&lt;li>&lt;strong>Human-readable&lt;/strong>: Leesbaar voor mensen én machines&lt;/li>
&lt;li>&lt;strong>Platform-independent&lt;/strong>: Werkt op alle systemen&lt;/li>
&lt;li>&lt;strong>Extensible&lt;/strong>: Flexibel uitbreidbaar voor specific behoeften&lt;/li>
&lt;/ul>
&lt;h3 id="xml-structuur-en-syntax">XML-structuur en syntax&lt;/h3>
&lt;h4 id="basis-xml-elementen">Basis XML-elementen&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;BRP:Persoon&lt;/span> &lt;span style="color:#a6e22e">xmlns:BRP=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.stufstandaarden.nl/basisgegevens&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;BRP:BSN&amp;gt;&lt;/span>123456789&lt;span style="color:#f92672">&amp;lt;/BRP:BSN&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;BRP:Geslachtsnaam&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;BRP:Voorvoegsel&amp;gt;&lt;/span>van der&lt;span style="color:#f92672">&amp;lt;/BRP:Voorvoegsel&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;BRP:GeslachtsnaamStam&amp;gt;&lt;/span>Berg&lt;span style="color:#f92672">&amp;lt;/BRP:GeslachtsnaamStam&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/BRP:Geslachtsnaam&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;BRP:Voornamen&amp;gt;&lt;/span>Jan Peter&lt;span style="color:#f92672">&amp;lt;/BRP:Voornamen&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;BRP:Geboortedatum&amp;gt;&lt;/span>1985-03-15&lt;span style="color:#f92672">&amp;lt;/BRP:Geboortedatum&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/BRP:Persoon&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="syntax-regels">Syntax-regels&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Case-sensitive&lt;/strong>: &lt;code>&amp;lt;Persoon&amp;gt;&lt;/code> ≠ &lt;code>&amp;lt;persoon&amp;gt;&lt;/code>&lt;/li>
&lt;li>&lt;strong>Well-formed&lt;/strong>: Elke opening-tag heeft matching closing-tag&lt;/li>
&lt;li>&lt;strong>Nested structure&lt;/strong>: Elementen kunnen elementen bevatten&lt;/li>
&lt;li>&lt;strong>Attribute syntax&lt;/strong>: &lt;code>&amp;lt;element attribuut=&amp;quot;waarde&amp;quot;&amp;gt;&lt;/code>&lt;/li>
&lt;/ul>
&lt;h4 id="namespaces">Namespaces&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;!-- Namespace declaraties --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;StUF:Bv03Bericht&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:StUF=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.stufstandaarden.nl/koppelvlak/stuf&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:BG=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.stufstandaarden.nl/onderlaag/bg&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:xsi=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;StUF:stuurgegevens&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;StUF:berichtCode&amp;gt;&lt;/span>Lv01&lt;span style="color:#f92672">&amp;lt;/StUF:berichtCode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;StUF:zender&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;StUF:organisatie&amp;gt;&lt;/span>0363&lt;span style="color:#f92672">&amp;lt;/StUF:organisatie&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/StUF:zender&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/StUF:stuurgegevens&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/StUF:Bv03Bericht&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="xml-schemas-xsd">XML Schema&amp;rsquo;s (XSD)&lt;/h3>
&lt;p>XML Schema Definition (XSD) definieert de structuur, elementen en datatypes van XML-documenten.&lt;/p></description></item><item><title>4.2 JSON als uitwisselingsformaat</title><link>https://melsk-r.github.io/Leerlijnen-KCA/4.2-json-als-uitwisselingsformaat/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://melsk-r.github.io/Leerlijnen-KCA/4.2-json-als-uitwisselingsformaat/</guid><description>&lt;h2 id="42-json-als-uitwisselingsformaat">4.2 JSON als uitwisselingsformaat&lt;/h2>
&lt;p>Kent JSON als modern uitwisselingsformaat (syntax, schema&amp;rsquo;s, voordelen ten opzichte van XML).&lt;/p>
&lt;h3 id="wat-is-json">Wat is JSON?&lt;/h3>
&lt;p>&lt;strong>JSON&lt;/strong> (JavaScript Object Notation) is een lichtgewicht, text-based data-uitwisselingsformaat. Hoewel oorspronkelijk ontworpen voor JavaScript, is JSON nu de de-facto standaard geworden voor moderne web-APIs en wordt steeds vaker ingezet in overheidscontext als alternatief voor XML.&lt;/p>
&lt;h4 id="kerneigenschappen">Kerneigenschappen:&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Compact&lt;/strong>: Minder overhead dan XML&lt;/li>
&lt;li>&lt;strong>Human-readable&lt;/strong>: Eenvoudig te lezen en schrijven&lt;/li>
&lt;li>&lt;strong>Native JavaScript&lt;/strong>: Perfect voor web-applicaties&lt;/li>
&lt;li>&lt;strong>Language-agnostic&lt;/strong>: Support in alle moderne programmeertalen&lt;/li>
&lt;/ul>
&lt;h3 id="json-syntax-en-structuur">JSON-syntax en structuur&lt;/h3>
&lt;h4 id="basis-json-datatypes">Basis JSON-datatypes&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;string_waarde&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;tekst&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;number_waarde&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">42&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;decimal_waarde&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">3.14159&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;boolean_waarde&amp;#34;&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;null_waarde&amp;#34;&lt;/span>: &lt;span style="color:#66d9ef">null&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;array_waarde&amp;#34;&lt;/span>: [&lt;span style="color:#ae81ff">1&lt;/span>, &lt;span style="color:#ae81ff">2&lt;/span>, &lt;span style="color:#ae81ff">3&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;vier&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;object_waarde&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;nested_key&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;nested_value&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="persoon-voorbeeld-vergelijkbaar-met-xml">Persoon-voorbeeld (vergelijkbaar met XML)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;persoon&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;123456789&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geslachtsnaam&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voorvoegsel&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;van der&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geslachtsnaamStam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Berg&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornamen&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jan Peter&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geboortedatum&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1985-03-15&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;adres&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;straatnaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Hoofdstraat&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;huisnummer&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">42&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;huisnummertoevoeging&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;A&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;postcode&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1234AB&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;woonplaatsnaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Amsterdam&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;contactgegevens&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;soort&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;email&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;waarde&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;jan.vandenberg@example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;soort&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;telefoon&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;waarde&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;06-12345678&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="json-vs-xml-vergelijking">JSON vs XML-vergelijking&lt;/h4>
&lt;p>&lt;strong>XML-versie:&lt;/strong>&lt;/p></description></item><item><title>4.3 SOAP-protocol</title><link>https://melsk-r.github.io/Leerlijnen-KCA/4.3-soap-protocol/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://melsk-r.github.io/Leerlijnen-KCA/4.3-soap-protocol/</guid><description>&lt;h2 id="43-soap-protocol">4.3 SOAP-protocol&lt;/h2>
&lt;p>Kent het SOAP-protocol voor webservices (structuur, WSDL, security, foutafhandeling).&lt;/p>
&lt;h3 id="wat-is-soap">Wat is SOAP?&lt;/h3>
&lt;p>&lt;strong>SOAP&lt;/strong> (Simple Object Access Protocol, later hernoemd naar Service Oriented Architecture Protocol) is een messaging-protocol voor het uitwisselen van gestructureerde informatie in web services. SOAP is een W3C-standaard die zwaar wordt gebruikt in enterprise- en overheidsomgevingen voor betrouwbare, veilige communicatie tussen systemen.&lt;/p>
&lt;h4 id="kerneigenschappen">Kerneigenschappen:&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Protocol-agnostic&lt;/strong>: Werkt over HTTP, HTTPS, SMTP, TCP&lt;/li>
&lt;li>&lt;strong>Platform-independent&lt;/strong>: Kan tussen verschillende systemen communiceren&lt;/li>
&lt;li>&lt;strong>Extensible&lt;/strong>: Uitbreidbaar met headers en security-features&lt;/li>
&lt;li>&lt;strong>Standardized&lt;/strong>: Strikte W3C-specificatie met tooling-support&lt;/li>
&lt;/ul>
&lt;h3 id="soap-berichtstructuur">SOAP-berichtstructuur&lt;/h3>
&lt;h4 id="basis-soap-envelope">Basis SOAP-envelope&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;soap:Envelope&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:soap=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://schemas.xmlsoap.org/soap/envelope/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:tns=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://example.org/persoon-service&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!-- Optionele headers --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Header&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Authentication&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Username&amp;gt;&lt;/span>gemeente_amsterdam&lt;span style="color:#f92672">&amp;lt;/tns:Username&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Token&amp;gt;&lt;/span>abc123-xyz789&lt;span style="color:#f92672">&amp;lt;/tns:Token&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tns:Authentication&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Header&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e">&amp;lt;!-- Verplichte body --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Body&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:GetPersoonRequest&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:BSN&amp;gt;&lt;/span>123456789&lt;span style="color:#f92672">&amp;lt;/tns:BSN&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tns:GetPersoonRequest&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Body&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/soap:Envelope&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="soap-response">SOAP-response&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;soap:Envelope&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:soap=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://schemas.xmlsoap.org/soap/envelope/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">xmlns:tns=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://example.org/persoon-service&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Body&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:GetPersoonResponse&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Persoon&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:BSN&amp;gt;&lt;/span>123456789&lt;span style="color:#f92672">&amp;lt;/tns:BSN&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Voornaam&amp;gt;&lt;/span>Jan&lt;span style="color:#f92672">&amp;lt;/tns:Voornaam&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Achternaam&amp;gt;&lt;/span>Berg&lt;span style="color:#f92672">&amp;lt;/tns:Achternaam&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Geboortedatum&amp;gt;&lt;/span>1985-03-15&lt;span style="color:#f92672">&amp;lt;/tns:Geboortedatum&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Adres&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Straat&amp;gt;&lt;/span>Hoofdstraat 42&lt;span style="color:#f92672">&amp;lt;/tns:Straat&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Postcode&amp;gt;&lt;/span>1234AB&lt;span style="color:#f92672">&amp;lt;/tns:Postcode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Plaats&amp;gt;&lt;/span>Amsterdam&lt;span style="color:#f92672">&amp;lt;/tns:Plaats&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tns:Adres&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tns:Persoon&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tns:GetPersoonResponse&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Body&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/soap:Envelope&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="soap-fault-foutafhandeling">SOAP Fault (foutafhandeling)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;soap:Envelope&lt;/span> &lt;span style="color:#a6e22e">xmlns:soap=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;http://schemas.xmlsoap.org/soap/envelope/&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Body&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Fault&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Code&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Value&amp;gt;&lt;/span>soap:Client&lt;span style="color:#f92672">&amp;lt;/soap:Value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Subcode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Value&amp;gt;&lt;/span>tns:InvalidBSN&lt;span style="color:#f92672">&amp;lt;/soap:Value&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Subcode&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Code&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Reason&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Text&lt;/span> &lt;span style="color:#a6e22e">xml:lang=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;nl&amp;#34;&lt;/span>&lt;span style="color:#f92672">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> BSN &amp;#39;12345678X&amp;#39; is geen geldig Burgerservicenummer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Text&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Reason&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;soap:Detail&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:ValidationError&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Field&amp;gt;&lt;/span>BSN&lt;span style="color:#f92672">&amp;lt;/tns:Field&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Message&amp;gt;&lt;/span>BSN moet uit precies 9 cijfers bestaan&lt;span style="color:#f92672">&amp;lt;/tns:Message&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;tns:Code&amp;gt;&lt;/span>BSN_INVALID_FORMAT&lt;span style="color:#f92672">&amp;lt;/tns:Code&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/tns:ValidationError&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Detail&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Fault&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;lt;/soap:Body&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt;/soap:Envelope&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="wsdl-web-service-description-language">WSDL (Web Service Description Language)&lt;/h3>
&lt;p>WSDL beschrijft de interface van een SOAP web service - welke operaties beschikbaar zijn, hoe berichten gestructureerd zijn, en hoe de service te bereiken is.&lt;/p></description></item><item><title>4.4 HTTP-protocol voor REST-API's</title><link>https://melsk-r.github.io/Leerlijnen-KCA/4.4-http-protocol-voor-rest-apis/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://melsk-r.github.io/Leerlijnen-KCA/4.4-http-protocol-voor-rest-apis/</guid><description>&lt;h2 id="44-http-protocol-voor-rest-apis">4.4 HTTP-protocol voor REST-API&amp;rsquo;s&lt;/h2>
&lt;p>Beheerst HTTP als protocol voor REST-API&amp;rsquo;s (methods, status codes, headers, caching).&lt;/p>
&lt;h3 id="http-basics-voor-apis">HTTP-basics voor API&amp;rsquo;s&lt;/h3>
&lt;p>&lt;strong>HTTP&lt;/strong> (Hypertext Transfer Protocol) vormt de basis van moderne web-API&amp;rsquo;s. In REST-architectuur wordt HTTP gebruikt zoals het bedoeld is: als een complete application-layer protocol voor resource-manipulatie.&lt;/p>
&lt;h4 id="http-request-structuur">HTTP Request-structuur&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">POST&lt;/span> /api/personen &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">api.gemeente.nl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">Gemeente-App/2.1.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">156&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;123456789&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jan&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;achternaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Berg&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geboortedatum&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1985-03-15&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="http-response-structuur">HTTP Response-structuur&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span> &lt;span style="color:#ae81ff">201&lt;/span> &lt;span style="color:#a6e22e">Created&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Location&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">/api/personen/pers_abc123&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ETag&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">&amp;#34;v1.2.3&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cache-Control&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">private, max-age=3600&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">234&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;pers_abc123&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;123456789&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jan&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;achternaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Berg&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geboortedatum&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1985-03-15&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;2024-03-05T14:30:00Z&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;updated_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;2024-03-05T14:30:00Z&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;_links&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;self&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;/api/personen/pers_abc123&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;adres&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;/api/personen/pers_abc123/adres&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="http-methods-voor-crud-operaties">HTTP Methods voor CRUD-operaties&lt;/h3>
&lt;h4 id="get---resource-opvragen">GET - Resource opvragen&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010"># Single resource
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">&lt;/span>&lt;span style="color:#a6e22e">GET&lt;/span> /api/personen/123456789 &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">api.gemeente.nl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Collection met filters
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>GET /api/personen?achternaam=Berg&amp;amp;geboortejaar=1985 HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: api.gemeente.nl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept: application/json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Response
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>HTTP/1.1 200 OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cache-Control: public, max-age=300
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;data&amp;#34;: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;id&amp;#34;: &amp;#34;pers_123&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;voornaam&amp;#34;: &amp;#34;Jan&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;achternaam&amp;#34;: &amp;#34;Berg&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;pagination&amp;#34;: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;total&amp;#34;: 1,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;page&amp;#34;: 1,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;per_page&amp;#34;: 25
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="post---resource-aanmaken">POST - Resource aanmaken&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">POST&lt;/span> /api/personen &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">api.gemeente.nl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">95&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;987654321&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Maria&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;achternaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jansen&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">#&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Success&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Response&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">HTTP/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span> &lt;span style="color:#ae81ff">201&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Created&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">Location:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/api/personen/pers_xyz&lt;/span>&lt;span style="color:#ae81ff">789&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">Content-Type:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;pers_xyz789&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;987654321&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Maria&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;achternaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jansen&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;2024-03-05T14:30:00Z&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">#&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Error&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Response&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">HTTP/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span> &lt;span style="color:#ae81ff">400&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Bad&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Request&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">Content-Type:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">application/problem+json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;type&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;https://api.gemeente.nl/problems/validation-error&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;title&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Validation Failed&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;status&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">400&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;detail&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Het verstrekte BSN is al in gebruik&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;instance&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;/api/personen&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;invalid_params&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;name&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;bsn&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;reason&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;BSN moet uniek zijn&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="put---resource-volledig-vervangen">PUT - Resource volledig vervangen&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">PUT&lt;/span> /api/personen/pers_123 &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">api.gemeente.nl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Match&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">&amp;#34;v1.2.3&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;123456789&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Johannes&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;achternaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;van den Berg&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geboortedatum&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1985-03-15&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">#&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Success&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Response&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">HTTP/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span> &lt;span style="color:#ae81ff">200&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">OK&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">Content-Type:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">application/json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">ETag:&lt;/span> &lt;span style="color:#e6db74">&amp;#34;v1.2.4&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;pers_123&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;bsn&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;123456789&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Johannes&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;achternaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;van den Berg&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;geboortedatum&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1985-03-15&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;updated_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;2024-03-05T14:35:00Z&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">#&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Conflict&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Response&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">(optimistic&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">locking)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">HTTP/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span> &lt;span style="color:#ae81ff">412&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Precondition&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Failed&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">Content-Type:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">application/problem+json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;type&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;https://api.gemeente.nl/problems/stale-data&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;title&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Resource Modified&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;status&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">412&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;detail&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;De resource is gewijzigd door een andere gebruiker&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="patch---gedeeltelijke-resource-update">PATCH - Gedeeltelijke resource-update&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">PATCH&lt;/span> /api/personen/pers_123 &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">api.gemeente.nl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">application/json-patch+json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Match&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">&amp;#34;v1.2.4&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>[
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;op&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;replace&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;path&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;/voornaam&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;value&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jan&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;op&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;add&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;path&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;/emailadres&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;value&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;jan.vandenberg@example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">#&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Alternative:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">JSON&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Merge&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">Patch&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">PATCH&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">/api/personen/pers_&lt;/span>&lt;span style="color:#ae81ff">123&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">HTTP/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">Content-Type:&lt;/span> &lt;span style="color:#960050;background-color:#1e0010">application/merge-patch+json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;voornaam&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Jan&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;emailadres&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;jan.vandenberg@example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="delete---resource-verwijderen">DELETE - Resource verwijderen&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">DELETE&lt;/span> /api/personen/pers_123 &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">api.gemeente.nl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Match&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">&amp;#34;v1.2.4&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Success Response (no content)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>HTTP/1.1 204 No Content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Success Response (with info)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>HTTP/1.1 200 OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;message&amp;#34;: &amp;#34;Persoon succesvol verwijderd&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;deleted_at&amp;#34;: &amp;#34;2024-03-05T14:40:00Z&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Conflict Response
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>HTTP/1.1 409 Conflict
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/problem+json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;type&amp;#34;: &amp;#34;https://api.gemeente.nl/problems/cannot-delete&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;title&amp;#34;: &amp;#34;Cannot Delete Resource&amp;#34;,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;#34;detail&amp;#34;: &amp;#34;Persoon kan niet worden verwijderd vanwege actieve zaken&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="http-status-codes">HTTP Status Codes&lt;/h3>
&lt;h4 id="success-codes-2xx">Success Codes (2xx)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">200 OK # Successful GET, PUT, PATCH
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">201 Created # Successful POST (resource created)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">202 Accepted # Request accepted (async processing)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">204 No Content # Successful DELETE or PUT (no response body)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">206 Partial Content # Partial GET (range requests)
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="client-error-codes-4xx">Client Error Codes (4xx)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">400 Bad Request # Malformed request
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">401 Unauthorized # Authentication required
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">403 Forbidden # Authorization failed
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">404 Not Found # Resource doesn&amp;#39;t exist
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">405 Method Not Allowed # HTTP method not supported
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">406 Not Acceptable # Unsupported Accept header
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">409 Conflict # Resource conflict (e.g., duplicate)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">410 Gone # Resource permanently deleted
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">412 Precondition Failed # If-Match, If-None-Match failed
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">413 Payload Too Large # Request body too large
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">415 Unsupported Media Type # Unsupported Content-Type
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">422 Unprocessable Entity # Semantic validation failed
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">429 Too Many Requests # Rate limiting
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="server-error-codes-5xx">Server Error Codes (5xx)&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">500 Internal Server Error # Generic server error
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">501 Not Implemented # Feature not implemented
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">502 Bad Gateway # Upstream service error
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">503 Service Unavailable # Temporary service outage
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#960050;background-color:#1e0010">504 Gateway Timeout # Upstream service timeout
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="http-headers-voor-apis">HTTP Headers voor API&amp;rsquo;s&lt;/h3>
&lt;h4 id="request-headers">Request Headers&lt;/h4>
&lt;p>&lt;strong>Authentication/Authorization:&lt;/strong>&lt;/p></description></item><item><title>4.5 Formaat- en protocolkeuzes</title><link>https://melsk-r.github.io/Leerlijnen-KCA/4.5-formaat-en-protocolkeuzes/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://melsk-r.github.io/Leerlijnen-KCA/4.5-formaat-en-protocolkeuzes/</guid><description>&lt;h2 id="45-formaat--en-protocolkeuzes">4.5 Formaat- en protocolkeuzes&lt;/h2>
&lt;p>Kan afgewogen keuzes maken tussen verschillende uitwisselingsformaten en protocollen op basis van context en requirements.&lt;/p>
&lt;h3 id="decision-framework-voor-format--en-protocolkeuze">Decision Framework voor Format- en Protocolkeuze&lt;/h3>
&lt;p>Het kiezen van het juiste uitwisselingsformaat en protocol is een strategische beslissing die lange-termijn impact heeft op maintainability, performance en interoperabiliteit. Voor overheidsorganisaties zijn er specifieke overwegingen die deze keuze beïnvloeden.&lt;/p>
&lt;h4 id="evaluatie-criteria">Evaluatie-criteria&lt;/h4>
&lt;p>&lt;strong>Technical Criteria:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Performance&lt;/strong>: Message-size, parsing-speed, bandwidth-usage&lt;/li>
&lt;li>&lt;strong>Complexity&lt;/strong>: Development-effort, debugging-ease, tooling&lt;/li>
&lt;li>&lt;strong>Interoperability&lt;/strong>: Cross-platform support, legacy-compatibility&lt;/li>
&lt;li>&lt;strong>Security&lt;/strong>: Built-in security features, vulnerability-resistance&lt;/li>
&lt;li>&lt;strong>Scalability&lt;/strong>: High-volume handling, caching-support&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Business Criteria:&lt;/strong>&lt;/p></description></item></channel></rss>