{"id":248989,"date":"2026-09-22T13:31:30","date_gmt":"2026-09-22T11:31:30","guid":{"rendered":"https:\/\/blog.adesso-bc.com\/?p=248989"},"modified":"2026-09-22T13:31:30","modified_gmt":"2026-09-22T11:31:30","slug":"checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3","status":"publish","type":"post","link":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/","title":{"rendered":"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3)"},"content":{"rendered":"\n<p class=\"has-large-font-size wp-block-paragraph\">Service Binding, metadata, CSRF token, and PATCH requests from a practical perspective<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the previous sections, I explained why it is worth connecting an external application to SAP through a RAP\/OData-based service, and we also went through how the RAP object chain is structured on the SAP side. At the end of the development process, however, a very practical question arises: how do I know exactly which URL the external application needs to call, which entity sets are available, which fields the service expects, and how can a modifying request, such as a PATCH operation, be executed?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The focus now is not on creating new RAP objects, but on validating the completed OData V4 service and preparing it for consumption. This is especially important because the integration of an external application should never be implemented based on assumptions. The exact endpoints, field names, keys, and data types must be read from the SAP-side service.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"340\" src=\"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/image.png\" alt=\"\" class=\"wp-image-248944\" srcset=\"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/image.png 940w, https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/image-480x270.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 940px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Where can I find the service root URL?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most important pieces of information for an external application is the service root URL. This is the base URL relative to which we call the entity sets, the metadata document, and URLs that point to specific records. It is not worth constructing this manually. The correct starting point is the Service Binding object in Eclipse\/ADT. Here you can see which service definition has been published, which binding type is used, and the URL at which the service is available.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Simplified format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>https:&#47;&#47;&lt;host&gt;:&lt;port&gt;\/sap\/opu\/odata4\/...\/&lt;service&gt;\/0001\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A fontos tanuls\u00e1g: a k\u00fcls\u0151 alkalmaz\u00e1s nem a CDS view nev\u00e9t, nem a behavior nev\u00e9t \u00e9s nem az adatb\u00e1zist\u00e1bla nev\u00e9t h\u00edvja. A k\u00fcls\u0151 alkalmaz\u00e1s a publik\u00e1lt OData szolg\u00e1ltat\u00e1s service root URL-j\u00e9b\u0151l indul. Ha ez az URL hib\u00e1s, akkor minden m\u00e1s is hib\u00e1s lesz: a GET, a metadata lek\u00e9r\u00e9s, a CSRF token k\u00e9r\u00e9s \u00e9s a PATCH m\u0171velet is.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">How do I know the name of the entity set?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another common misunderstanding concerns the entity set name. People often try to call the name of the projection CDS or interface CDS. That is the wrong approach. From the external consumer&#8217;s perspective, what matters is the name under which the object is exposed in the service definition.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>For example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>define service ZUI_AOT_IF_USER_O4 {\nexpose ZC_AOT_IF_USER as Users;\n}<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>In this case, the entity set name for the external application is:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>Users<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>So a simple GET request might look like this:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>GET &lt;service-root&gt;\/Users<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>The metadata can be accessed as follows:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>GET &lt;service-root&gt;\/$metadata<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is a very important distinction. The external application does not need to know internal SAP object names; it needs to know the published service contract.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">What is \/IWFND\/V4_ADMIN used for?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/IWFND\/V4_ADMIN is the SAP Gateway administration interface for OData V4 services. Here you can verify whether the service group has been published, whether the service is reachable, and you can also test the given OData V4 endpoint. During the project, this was a key step because having a Service Binding created in ADT did not by itself guarantee that the external application could already consume the service. The Gateway-side publication also had to be configured correctly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What is worth checking here:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>whether the service group is visible;<\/strong><\/li>\n\n\n\n<li><strong>whether it is in published status;<\/strong><\/li>\n\n\n\n<li><strong>whether the service test can be started;<\/strong><\/li>\n\n\n\n<li><strong>whether a simple GET request works;<\/strong><\/li>\n\n\n\n<li><strong>whether the metadata is accessible.<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If these do not work on the SAP side either, there is no point looking for the problem in the C# client, Postman, or any other external application. The SAP-side publication must be fixed first. To access the service test, locate the published endpoint and click the Service Test tab. This opens the test interface where we can work with the service.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"542\" src=\"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/image-1.png\" alt=\"\" class=\"wp-image-248945\" srcset=\"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/image-1.png 940w, https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/image-1-480x270.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 940px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">The role of metadata<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The $metadata document is one of the most important parts of an OData service. It describes which entity sets are available, which fields exist, which fields are keys, which data types the service expects, and how the external application must communicate with SAP. Therefore, the external application should not be adapted to our own assumptions, but to the metadata document.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>Example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>GET &lt;service-root&gt;\/$metadata<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The metadata reveals, for example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>the exact name of the entity set;<\/strong><\/li>\n\n\n\n<li><strong>which field is the key;<\/strong><\/li>\n\n\n\n<li><strong>which fields exist;<\/strong><\/li>\n\n\n\n<li><strong>the exact names of the fields;<\/strong><\/li>\n\n\n\n<li><strong>which data type SAP expects;<\/strong><\/li>\n\n\n\n<li><strong>which fields can be modified;<\/strong><\/li>\n\n\n\n<li><strong>whether navigation relationships or ETag information are available.<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is especially important for POST or PATCH requests. If the metadata says a field is named IsActive, then that exact name must also be used in the payload. If the metadata publishes a field as a string, we cannot send it as though it were a boolean. Metadata is therefore not just an incidental technical file. It is the contract between the service and the external application.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">What is the X-CSRF-Token?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The CSRF token is important for modifying HTTP operations such as POST, PATCH, PUT, or DELETE. The idea is simple: the client must first request a token and then send that token back in the header of the modifying request.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>Typical token retrieval:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>GET &lt;service-root&gt;\/<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>With the following headers:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>Accept: application\/json\nX-CSRF-Token: Fetch<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>SAP returns the token in the response:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>X-CSRF-Token: &lt;token-value><\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>For the modifying request, it must be sent back in the header:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>X-CSRF-Token: &lt;token-value><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The critical point is that not only the token must be retained, but also the session cookies returned by SAP. If the token belongs to one session but the PATCH request is sent in another session, the request may fail. This is one of the typical reasons why a modification works in the SAP Gateway Client but fails from an external application.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Which headers are important?<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>For a GET request, the Accept header is usually sufficient:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>Accept: application\/json<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>For token retrieval:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>Accept: application\/json\n\nX-CSRF-Token: Fetch<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>For a PATCH request, you need to pay attention to the following:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>Content-Type: application\/json\n\nAccept: application\/json\n\nX-CSRF-Token: &lt;token-value>\n\nCookie: &lt;session cookie returned by SAP><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In some cases, an If-Match header may also be required, for example when ETag-based or concurrency handling is used:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>If-Match: *<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">However, this should not be used blindly. Whether it is required must always be determined from the service metadata document and the GET response. A header is not decoration. It is part of the integration contract.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\">Executing a PATCH request<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The purpose of PATCH is to partially modify an existing record. To do this, you first need to know the exact URL of the record. This URL is built from the service root, the entity set name, and the key field.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Simplified example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>PATCH &lt;service-root&gt;\/Users('&lt;UserId&gt;')<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The exact key format must always be checked against the $metadata document. If there are multiple key fields, or if the service expects a named-key format, the URL may look different.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>Example PATCH headers:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>Content-Type: application\/json\n\nAccept: application\/json\n\nX-CSRF-Token: &lt;token-value>\n\nCookie: &lt;session-cookie><\/code><\/pre>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><strong>Example body:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>{ \n\n\"IsActive\": false\n\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is correct only if, according to the metadata, IsActive is actually exposed under this name and type as a modifiable field. If the service expects a different type, the payload must be adjusted accordingly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For PATCH, three things must always be checked:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>am I sending a field that exists;<\/strong><\/li>\n\n\n\n<li><strong>am I sending a field that can be modified;<\/strong><\/li>\n\n\n\n<li><strong>am I sending a data type that the service expects according to the metadata.<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If any of these are incorrect, it is not SAP that is &#8220;wrong&#8221;; the client is failing to comply with the service contract.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Key takeaway<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using an OData V4 service does not begin with sending an HTTP request from the external application. First, the exact service root URL must be identified in the Service Binding. Then you need to check under which entity set name the service definition publishes the object. In \/IWFND\/V4_ADMIN, you must verify that the service group is published and testable. A GET request should be used to prove that the service is reachable. Based on the metadata, the keys, fields, and data types must be understood. Only then does it make sense to work with modifying operations such as PATCH requests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most important lesson for me was that the external application must be aligned not with my own assumptions, but with the contract described by the metadata. If we follow this principle, SAP integration becomes much more predictable. Instead of guessing, we work against a verified service contract.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Service Binding, metadata, CSRF token, and PATCH requests from a practical perspective In the previous sections, I explained why it is worth connecting an external application to SAP through a RAP\/OData-based service, and we also went through how the RAP object chain is structured on the SAP side. At the end of the development process, [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":248988,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[335],"tags":[839,906],"class_list":["post-248989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sap","tag-odata-v4","tag-sap-gateway","blogauthor-ignac-ferenc"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3) - adesso business consulting Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3) - adesso business consulting Blog\" \/>\n<meta property=\"og:description\" content=\"Service Binding, metadata, CSRF token, and PATCH requests from a practical perspective In the previous sections, I explained why it is worth connecting an external application to SAP through a RAP\/OData-based service, and we also went through how the RAP object chain is structured on the SAP side. At the end of the development process, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/\" \/>\n<meta property=\"og:site_name\" content=\"adesso business consulting Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/adessoorange\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-22T11:31:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/pexels-pixabay-210158-1024x684.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"684\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"martin.kiss\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"martin.kiss\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/\"},\"author\":{\"name\":\"martin.kiss\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/person\\\/b029dbc3cacd8c2d5e3f8553852f7f0d\"},\"headline\":\"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3)\",\"datePublished\":\"2026-09-22T11:31:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/\"},\"wordCount\":1361,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/pexels-pixabay-210158-scaled.png\",\"keywords\":[\"OData V4\",\"SAP Gateway\"],\"articleSection\":[\"SAP\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/\",\"name\":\"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3) - adesso business consulting Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/pexels-pixabay-210158-scaled.png\",\"datePublished\":\"2026-09-22T11:31:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/pexels-pixabay-210158-scaled.png\",\"contentUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/pexels-pixabay-210158-scaled.png\",\"width\":2560,\"height\":1709},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/\",\"name\":\"adesso business consulting Blog\",\"description\":\"Latest developments and exciting topics from the world of SAP\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#organization\",\"name\":\"adesso orange AG\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/adesso-orange-blog-logo-gry.svg\",\"contentUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/adesso-orange-blog-logo-gry.svg\",\"width\":100,\"height\":100,\"caption\":\"adesso orange AG\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/adessoorange\",\"https:\\\/\\\/www.instagram.com\\\/adesso.orange\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/adesso-orange\",\"https:\\\/\\\/www.xing.com\\\/pages\\\/adesso-orange\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/person\\\/b029dbc3cacd8c2d5e3f8553852f7f0d\",\"name\":\"martin.kiss\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/author\\\/martin-kiss\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3) - adesso business consulting Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/","og_locale":"en_US","og_type":"article","og_title":"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3) - adesso business consulting Blog","og_description":"Service Binding, metadata, CSRF token, and PATCH requests from a practical perspective In the previous sections, I explained why it is worth connecting an external application to SAP through a RAP\/OData-based service, and we also went through how the RAP object chain is structured on the SAP side. At the end of the development process, [&hellip;]","og_url":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/","og_site_name":"adesso business consulting Blog","article_publisher":"https:\/\/www.facebook.com\/adessoorange","article_published_time":"2026-09-22T11:31:30+00:00","og_image":[{"width":1024,"height":684,"url":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/pexels-pixabay-210158-1024x684.png","type":"image\/png"}],"author":"martin.kiss","twitter_card":"summary_large_image","twitter_misc":{"Written by":"martin.kiss","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#article","isPartOf":{"@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/"},"author":{"name":"martin.kiss","@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/person\/b029dbc3cacd8c2d5e3f8553852f7f0d"},"headline":"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3)","datePublished":"2026-09-22T11:31:30+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/"},"wordCount":1361,"publisher":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#organization"},"image":{"@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/pexels-pixabay-210158-scaled.png","keywords":["OData V4","SAP Gateway"],"articleSection":["SAP"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/","url":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/","name":"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3) - adesso business consulting Blog","isPartOf":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#primaryimage"},"image":{"@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/pexels-pixabay-210158-scaled.png","datePublished":"2026-09-22T11:31:30+00:00","breadcrumb":{"@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#primaryimage","url":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/pexels-pixabay-210158-scaled.png","contentUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/09\/pexels-pixabay-210158-scaled.png","width":2560,"height":1709},{"@type":"BreadcrumbList","@id":"https:\/\/blog.adesso-bc.com\/en\/checking-an-odata-v4-service-on-the-sap-gateway-sap-integration-pt-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.adesso-bc.com\/en\/"},{"@type":"ListItem","position":2,"name":"Checking an OData V4 Service on the SAP Gateway (SAP Integration pt. 3)"}]},{"@type":"WebSite","@id":"https:\/\/blog.adesso-bc.com\/en\/#website","url":"https:\/\/blog.adesso-bc.com\/en\/","name":"adesso business consulting Blog","description":"Latest developments and exciting topics from the world of SAP","publisher":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.adesso-bc.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blog.adesso-bc.com\/en\/#organization","name":"adesso orange AG","url":"https:\/\/blog.adesso-bc.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2022\/03\/adesso-orange-blog-logo-gry.svg","contentUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2022\/03\/adesso-orange-blog-logo-gry.svg","width":100,"height":100,"caption":"adesso orange AG"},"image":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/adessoorange","https:\/\/www.instagram.com\/adesso.orange","https:\/\/www.linkedin.com\/company\/adesso-orange","https:\/\/www.xing.com\/pages\/adesso-orange"]},{"@type":"Person","@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/person\/b029dbc3cacd8c2d5e3f8553852f7f0d","name":"martin.kiss","url":"https:\/\/blog.adesso-bc.com\/en\/author\/martin-kiss\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts\/248989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/comments?post=248989"}],"version-history":[{"count":3,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts\/248989\/revisions"}],"predecessor-version":[{"id":249011,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts\/248989\/revisions\/249011"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/media\/248988"}],"wp:attachment":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/media?parent=248989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/categories?post=248989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/tags?post=248989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}