{"id":38278,"date":"2019-03-13T10:12:43","date_gmt":"2019-03-13T08:12:43","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=38278"},"modified":"2019-03-13T10:12:50","modified_gmt":"2019-03-13T08:12:50","slug":"headless-cms-rest-vs-jsonapi-vs-graphql","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/","title":{"rendered":"Headless CMS: REST vs JSON:API vs GraphQL"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"310\" data-attachment-id=\"38279\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/rest-vs-jsonapi-graphql-comparison-1280w\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w.jpg?fit=1280%2C601&amp;ssl=1\" data-orig-size=\"1280,601\" 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=\"rest-vs-jsonapi-graphql-comparison-1280w\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w.jpg?fit=660%2C310&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w-1024x481.jpg?resize=660%2C310&#038;ssl=1\" alt=\"\" class=\"wp-image-38279\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w.jpg?resize=1024%2C481&amp;ssl=1 1024w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w.jpg?resize=500%2C235&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w.jpg?resize=768%2C361&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<a href=\"https:\/\/dri.es\/headless-cms-rest-vs-jsonapi-vs-graphql\">Headless CMS: REST vs JSON:API vs GraphQL<\/a>&#8221; is an interesting comparison of the REST, JSON:API, and GraphQL:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>In this blog post, we will compare REST, JSON:API and GraphQL. First, we&#8217;ll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.<\/p><\/blockquote>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;Headless CMS: REST vs JSON:API vs GraphQL&#8221; is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we&#8217;ll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"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_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Headless CMS: REST vs JSON:API vs GraphQL #WebDev #API #REST #JSON #GraphQL #CMS #Drupal ","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},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[2404,105,3324,3149,3531,3306,3224,1330],"keyring_services":[],"class_list":["post-38278","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-api","tag-cms","tag-comparison","tag-drupal","tag-graphql","tag-json","tag-rest","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"&quot;Headless CMS: REST vs JSON:API vs GraphQL&quot; is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we&#039;ll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"&quot;Headless CMS: REST vs JSON:API vs GraphQL&quot; is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we&#039;ll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-03-13T08:12:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-03-13T08:12:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"&quot;Headless CMS: REST vs JSON:API vs GraphQL&quot; is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we&#039;ll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#blogposting\",\"name\":\"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov\",\"headline\":\"Headless CMS: REST vs JSON:API vs GraphQL\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/rest-vs-jsonapi-graphql-comparison-1280w-1024x481.jpg\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#articleImage\"},\"datePublished\":\"2019-03-13T10:12:43+02:00\",\"dateModified\":\"2019-03-13T10:12:50+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, API, CMS, comparison, Drupal, GraphQL, JSON, REST, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#listItem\",\"name\":\"Headless CMS: REST vs JSON:API vs GraphQL\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#listItem\",\"position\":4,\"name\":\"Headless CMS: REST vs JSON:API vs GraphQL\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/\",\"name\":\"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov\",\"description\":\"\\\"Headless CMS: REST vs JSON:API vs GraphQL\\\" is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we'll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2019\\\/03\\\/13\\\/headless-cms-rest-vs-jsonapi-vs-graphql\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2019-03-13T10:12:43+02:00\",\"dateModified\":\"2019-03-13T10:12:50+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov","description":"\"Headless CMS: REST vs JSON:API vs GraphQL\" is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we'll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#blogposting","name":"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov","headline":"Headless CMS: REST vs JSON:API vs GraphQL","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/rest-vs-jsonapi-graphql-comparison-1280w-1024x481.jpg","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#articleImage"},"datePublished":"2019-03-13T10:12:43+02:00","dateModified":"2019-03-13T10:12:50+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#webpage"},"articleSection":"All, Programming, Technology, Web work, API, CMS, comparison, Drupal, GraphQL, JSON, REST, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#listItem","name":"Headless CMS: REST vs JSON:API vs GraphQL"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#listItem","position":4,"name":"Headless CMS: REST vs JSON:API vs GraphQL","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/","name":"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov","description":"\"Headless CMS: REST vs JSON:API vs GraphQL\" is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we'll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2019-03-13T10:12:43+02:00","dateModified":"2019-03-13T10:12:50+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov","og:description":"&quot;Headless CMS: REST vs JSON:API vs GraphQL&quot; is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we'll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.","og:url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2019-03-13T08:12:43+00:00","article:modified_time":"2019-03-13T08:12:50+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Headless CMS: REST vs JSON:API vs GraphQL - Leonid Mamchenkov","twitter:description":"&quot;Headless CMS: REST vs JSON:API vs GraphQL&quot; is an interesting comparison of the REST, JSON:API, and GraphQL: In this blog post, we will compare REST, JSON:API and GraphQL. First, we'll look at an architectural, CMS-agnostic comparison, followed by evaluating some Drupal-specific implementation details.","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"38278","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 05:49:37","updated":"2026-01-15 14:07:44","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHeadless CMS: REST vs JSON:API vs GraphQL\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"Headless CMS: REST vs JSON:API vs GraphQL","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/13\/headless-cms-rest-vs-jsonapi-vs-graphql\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27805,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/07\/27\/rest-apis-are-rest-in-peace-apis-long-live-graphql\/","url_meta":{"origin":38278,"position":0},"title":"Rest APIs are REST-in-Peace APIs. Long Live GraphQL.","author":"Leonid Mamchenkov","date":"July 27, 2017","format":false,"excerpt":"\"Rest APIs are REST-in-Peace APIs. Long Live GraphQL.\" is yet another look at REST vs. GraphQL for the API implementation. I'm involved with developing quite a bit of REST APIs at work, but for now we are just trying to buy us some time. \u00a0I want to take a really\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27662,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/06\/06\/graphql-a-query-language-for-your-api\/","url_meta":{"origin":38278,"position":1},"title":"GraphQL &#8211; a query language for your API","author":"Leonid Mamchenkov","date":"June 6, 2017","format":false,"excerpt":"GraphQL is a query language for the API. \u00a0It's been used by the Facebook mobile app since 2012. \u00a0The specification was open sourced in 2015. \u00a0And now GitHub is getting on board as \u00a0well. \u00a0This looks interesting. https:\/\/www.youtube.com\/watch?v=dsPVrbDHgaY","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/06\/graphql-500x88.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28303,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/01\/09\/github-graphql-api-v4\/","url_meta":{"origin":38278,"position":2},"title":"GitHub GraphQL API v4","author":"Leonid Mamchenkov","date":"January 9, 2018","format":false,"excerpt":"I've briefly mentioned before that GitHub joined the adopters of the GraphQL for their API.\u00a0 Here's the link to the full documentation and more details. GitHub chose GraphQL for our API v4 because it offers significantly more flexibility for our integrators. The ability to define precisely the data you want\u2014and\u00a0only\u00a0the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28392,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/19\/quick-guide-to-graphql-for-backend-frontend\/","url_meta":{"origin":38278,"position":3},"title":"Quick Guide to GraphQL for BackEnd &#038; FrontEnd","author":"Leonid Mamchenkov","date":"February 19, 2018","format":false,"excerpt":"GraphQL is one of those technologies which is constantly on my radar, just waiting for the right time and project to try it on.\u00a0 For now, I'm just slowly moving to that target, collecting links to resources in the meantime. \"Introduction & Quick Guide to GraphQL for BackEnd & FrontEnd\"\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/graphql-500x333.jpeg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28518,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/24\/introducing-the-aws-amplify-graphql-client\/","url_meta":{"origin":38278,"position":4},"title":"Introducing the AWS Amplify GraphQL Client","author":"Leonid Mamchenkov","date":"April 24, 2018","format":false,"excerpt":"\"Introducing the AWS Amplify GraphQL Client\" showcases the new GraphQL client that was built by the Amazon Amplify team.\u00a0 It's pretty sweet.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":40663,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/28\/api-platform-rest-and-graphql-framework-to-build-modern-api-driven-projects\/","url_meta":{"origin":38278,"position":5},"title":"API Platform &#8211; REST and GraphQL framework to build modern API-driven projects","author":"Leonid Mamchenkov","date":"March 28, 2019","format":false,"excerpt":"API Platform is a framework for building API-driven projects. I came across this via this blog post that covers the recent release of v2.4. The list of features and components is quite extensive: Read and write support for MongoDBRead support for ElasticsearchMessage queues support via a number of brokers, including\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/api-platform-2.4-1200x600.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/38278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=38278"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/38278\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=38278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=38278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=38278"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=38278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}