{"id":4157,"date":"2025-06-10T08:54:53","date_gmt":"2025-06-10T06:54:53","guid":{"rendered":"https:\/\/www.capri-soft.de\/blog\/?p=4157"},"modified":"2025-06-10T09:22:34","modified_gmt":"2025-06-10T07:22:34","slug":"rest-client-fuer-visual-studio-code","status":"publish","type":"post","link":"https:\/\/www.capri-soft.de\/blog\/?p=4157","title":{"rendered":"REST-Client f\u00fcr Visual Studio Code (Extension: &#8222;REST Client&#8220;)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Intention<\/h2>\n\n\n\n<p>Zum Testen \/ Aufrufen von REST-API&#8217;s ben\u00f6tigt man am Besten einen Client, der nicht unbedingt im Webspace der selben Domain gehostet ist, da man Testen m\u00f6chte ob die <strong>Cross-Origin Resource Policy (CORP) \/ Cross Site Policy<\/strong> korrekt konfiguriert ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem<\/h2>\n\n\n\n<p>W\u00fcrde man einen Javascript-REST-Client im Web-Root \/ wwwroot \/ inetpub der selben Domain hosten, k\u00f6nnte dieser ohne Verletzung der Policy auf die REST-Services der selben Domain zugreifen. W\u00fcrde man die Endpoints \/ Endpunkte an einen Konsumenten weitergeben, k\u00f6nnte dieser bei einer Fehlkonfiguration diese trotzdem nicht aufrufen.<\/p>\n\n\n\n<p>Beispiel f\u00fcr einen Javascript-REST-Client, der durch den Response-Body ein JSON-Array iteriert <strong><em>(f\u00fcr Tests nicht empfohlen)<\/em><\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n&lt;button id=&quot;loadData&quot;&gt;Get Rides&lt;\/button&gt;\n&lt;div id=&quot;rideData&quot;&gt;&lt;\/div&gt;\n\n&lt;script&gt;\n    async function fetchRideData() {\n        const response = await fetch(&quot;\/Ride&quot;);\n        if (!response.ok) {\n            document.getElementById(&quot;rideData&quot;).innerText = &quot;Fehler beim Laden der Daten.&quot;;\n            return;\n        }\n        const data = await response.json();\n        let html = &quot;&lt;ul&gt;&quot;;\n        data.forEach(item =&gt; {\n            html += `&lt;li&gt;ID: ${item.id}, Datum: ${item.timestamp}, GPS Position: ${item.gpS_Position}, Kennzeichen: ${item.kennzeichen}&lt;\/li&gt;`;\n        });\n        html += &quot;&lt;\/ul&gt;&quot;;\n        document.getElementById(&quot;rideData&quot;).innerHTML = html;\n    }\n\n    document.getElementById(&quot;loadData&quot;).addEventListener(&quot;click&quot;, fetchRideData);\n&lt;\/script&gt;\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">L\u00f6sung <\/h2>\n\n\n\n<p>Die Extension &#8222;REST Client&#8220; kann als autarker REST-Client, der nicht in der Dom\u00e4ne des Webspaces l\u00e4uft, sondern lokal vom Rechner aus den Aufruf t\u00e4tigt, genutzt werden: <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"353\" data-attachment-id=\"4159\" data-permalink=\"https:\/\/www.capri-soft.de\/blog\/?attachment_id=4159\" data-orig-file=\"https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?fit=799%2C595&amp;ssl=1\" data-orig-size=\"799,595\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?fit=474%2C353&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?resize=474%2C353&#038;ssl=1\" alt=\"\" class=\"wp-image-4159\" srcset=\"https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?w=799&amp;ssl=1 799w, https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?resize=300%2C223&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.capri-soft.de\/blog\/wp-content\/uploads\/2025\/06\/image-1.png?resize=768%2C572&amp;ssl=1 768w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>Im Screenshot oben wurde die Extension &#8222;REST Client&#8220; installiert und eine neue Datei mit dem Namen &#8222;restapi.http&#8220; angelegt. <\/p>\n\n\n\n<p>Die Datei hat den folgenden Inhalt (im Body wird ein JSON-Array \u00fcbermittelt, dieses m\u00fcsste dem Service entsprechend ersetzt werden):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nPOST https:\/\/www.domain.info\/GenericRequest\nContent-Type: application\/json; charset=utf-8\nTransfer-Encoding: chunked\nConnection: keep-alive\nX-WS-RateLimit-Limit: 1000\nX-WS-RateLimit-Remaining: 999\nServer: Microsoft-IIS\/10.0\nX-Powered-By: ASP.NET\nDate: Wed, 07 May 2025 10:27:38 GMT\n\n&#x5B; {\n&quot;ts&quot;: 1530536430,\n&quot;lat&quot;:-34.1868759,\n&quot;lng&quot;:-56.9065776,\n&quot;head&quot;: 30,\n&quot;speed&quot;: 50,\n&quot;id&quot;: &quot;SBV3399&quot;,\n&quot;temp&quot;: &quot;20&quot;,\n&quot;motor&quot;:&quot;on&quot;\n\n},\n{\n&quot;ts&quot;: 1530536430,\n&quot;lat&quot;:-34.1868759,\n&quot;lng&quot;:-56.9065776,\n&quot;head&quot;: 0,\n&quot;speed&quot;: 50,\n&quot;id&quot;: &quot;MAV4099&quot;,\n&quot;temp&quot;: &quot;8&quot;,\n&quot;motor&quot;:&quot;off&quot;\n}]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Fazit<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Guides\/Cross-Origin_Resource_Policy\"><\/a><\/h2>\n\n\n\n<p>REST API&#8217;s lassen sich am Besten mit einem REST-Client testen \/ aufrufen, der nicht auf dem Domain-Space l\u00e4uft, auf dem die Endpunkte gehostet sind um CORP zu testen. Dies verhindert unangenehme \u00dcberraschungen zwischen der aufrufenden und aufzurufenden Seite.<\/p>\n<iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.capri-soft.de%2Fblog%2F%3Fp%3D4157&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" style=\"border:none; overflow:hidden; width:450px;margin-top:5px;\"><\/iframe>","protected":false},"excerpt":{"rendered":"<p>Intention Zum Testen \/ Aufrufen von REST-API&#8217;s ben\u00f6tigt man am Besten einen Client, der nicht unbedingt im Webspace der selben Domain gehostet ist, da man Testen m\u00f6chte ob die Cross-Origin Resource Policy (CORP) \/ Cross Site Policy korrekt konfiguriert ist. Problem W\u00fcrde man einen Javascript-REST-Client im Web-Root \/ wwwroot \/ inetpub der selben Domain hosten, &hellip; <a href=\"https:\/\/www.capri-soft.de\/blog\/?p=4157\" class=\"more-link\"><span class=\"screen-reader-text\">REST-Client f\u00fcr Visual Studio Code (Extension: &#8222;REST Client&#8220;)<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,3],"tags":[548,547,550,546,549,541,539,545,543,540,544,542,538,537],"class_list":["post-4157","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-programmierung","tag-corp","tag-cross-domain-policy","tag-cross-origin-2","tag-cross-site-policy","tag-cross-origin","tag-rest-api-testen","tag-rest-client","tag-rest-service-aufrufen","tag-rest-testen","tag-rest-client-2","tag-services-testen","tag-testen-von-rest","tag-web-client-2","tag-web-client"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4yGeN-153","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4157"}],"version-history":[{"count":7,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4157\/revisions"}],"predecessor-version":[{"id":4169,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4157\/revisions\/4169"}],"wp:attachment":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}