{"id":8370,"date":"2022-09-13T06:15:05","date_gmt":"2022-09-13T00:45:05","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/"},"modified":"2022-09-13T06:15:05","modified_gmt":"2022-09-13T00:45:05","slug":"solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/","title":{"rendered":"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-52613025\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"52613025\" data-parentid=\"52612020\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>This is less a question targeted towards REST then it is actually targeting HTTP as the default transport protocol used by applications following a REST architecture approach. According to <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7231#section-4.3.4\">RFC 7231 4.3.4<\/a> a server<\/p>\n<blockquote>\n<p>SHOULD verify that the PUT representation is consistent with any constraints the server has for the target resource that cannot or will not be changed by the PUT.<\/p>\n<\/blockquote>\n<blockquote>\n<p>&#8230;<\/p>\n<\/blockquote>\n<blockquote>\n<p>When a PUT representation is inconsistent with the target resource, the origin server SHOULD either make them consistent, by transforming the representation or changing the resource configuration, or respond with an appropriate error message containing sufficient information to explain why the representation is unsuitable.<\/p>\n<\/blockquote>\n<p>I admit that this is a bit vague and leaves plenty of room for interpretation but I feel that it&#8217;s more or less up to you whether you want an empty body being a valid state of the resource or not. In case you think it shouldn&#8217;t allow an empty body simply return a <code>409 Conflict<\/code> response indicating why the request failed.<\/p>\n<p>A further note needs to be added here: REST puts focus on the usage of media types. A media type is a syntactical and semantical description of the elements forming a valid document. If you compare that with HTML i.e. you will notice that it defines when certain elements are valid to be put into a document or not and which syntactial structure to use. The same should be done for almost any document here either. The media type therefore defines constraints on certain elements and what not. A <code>PUT<\/code> request here should validate the received payload against the constraints defined in a media type to determine whether a conflict arrose or the representation may be converted to an other media type format.<\/p>\n<p><code>application\/json<\/code> is a very weak media type in terms of REST as it just defines the syntactical structure. It doesn&#8217;t even support links to other documents to start with. There are a couple of extensions like <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/stateless.co\/hal_specification.html\"><code>application\/hal+json<\/code><\/a> that define the semantics on link relations though this will most likely still not define the semantics of elements you require.<\/p>\n<p>This is exactly why Fielding mentioned that<\/p>\n<blockquote>\n<p>A REST API should spend almost all of its descriptive effort in defining the media type(s) used for representing resources and driving application state, or in defining extended relation names and\/or hypertext-enabled mark-up for existing standard media types. (<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/roy.gbiv.com\/untangled\/2008\/rest-apis-must-be-hypertext-driven\">Source<\/a>)<\/p>\n<\/blockquote><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Should REST APIs for updating a map allow setting the map to empty? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] This is less a question targeted towards REST then it is actually targeting HTTP as the default transport protocol used by applications following a REST architecture approach. According to RFC 7231 4.3.4 a server SHOULD verify that the PUT representation is consistent with any constraints the server has for the target resource that cannot &#8230; <a title=\"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\" aria-label=\"More on [Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[1315,356,1129],"class_list":["post-8370","post","type-post","status-publish","format-standard","hentry","category-solved","tag-api","tag-json","tag-rest"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed] - JassWeb<\/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:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] This is less a question targeted towards REST then it is actually targeting HTTP as the default transport protocol used by applications following a REST architecture approach. According to RFC 7231 4.3.4 a server SHOULD verify that the PUT representation is consistent with any constraints the server has for the target resource that cannot ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-13T00:45:05+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]\",\"datePublished\":\"2022-09-13T00:45:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\"},\"wordCount\":426,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"api\",\"json\",\"rest\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\",\"name\":\"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-13T00:45:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed] - JassWeb","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:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed] - JassWeb","og_description":"[ad_1] This is less a question targeted towards REST then it is actually targeting HTTP as the default transport protocol used by applications following a REST architecture approach. According to RFC 7231 4.3.4 a server SHOULD verify that the PUT representation is consistent with any constraints the server has for the target resource that cannot ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/","og_site_name":"JassWeb","article_published_time":"2022-09-13T00:45:05+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]","datePublished":"2022-09-13T00:45:05+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/"},"wordCount":426,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["api","json","rest"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/","name":"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-13T00:45:05+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-should-rest-apis-for-updating-a-map-allow-setting-the-map-to-empty-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Should REST APIs for updating a map allow setting the map to empty? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/8370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=8370"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/8370\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=8370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=8370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=8370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}