{"id":2870,"date":"2017-07-28T12:43:15","date_gmt":"2017-07-28T16:43:15","guid":{"rendered":"http:\/\/chrisgrundemann.com\/?p=2870"},"modified":"2021-07-08T11:13:31","modified_gmt":"2021-07-08T15:13:31","slug":"api-new-cli-fact-fiction","status":"publish","type":"post","link":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/","title":{"rendered":"The API is the New CLI: Fact or Fiction?"},"content":{"rendered":"<p><i>The API is the new CLI.<\/i><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>If you\u2019re a network engineer who pays attention to new technology, you\u2019ve certainly heard some variation of this statement. But is it true?<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>Let\u2019s start with the basics.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>You know what a\u00a0<i>Command Line Interface<\/i>\u00a0(<a href=\"https:\/\/en.wikipedia.org\/wiki\/Command-line_interface\">CLI<\/a>) is; it\u2019s how you talk to your switches and routers, and possibly many other devices and programs.\u00a0An\u00a0<i>Application Programming Interface<\/i>\u00a0(<a href=\"https:\/\/en.wikipedia.org\/wiki\/Application_programming_interface\">API<\/a>), on the other hand,\u00a0defines\u00a0the\u00a0methods of communication between various software components. In other words, it\u2019s how programs talk to each other.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>In networking, there are probably three\u00a0types of API\u00a0that you\u2019ll encounter:\u00a0NETCONF,\u00a0REST, and\u00a0RESTCONF.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>NETCONF<\/h2>\n<p>The Network Configuration Protocol (NETCONF\u00a0\u2013 <a href=\"https:\/\/tools.ietf.org\/html\/rfc6241\">RFC 6241<\/a>)\u00a0\u201cprovides mechanisms to install, manipulate, and delete the configuration of network devices.\u201d \u00a0These are often called Create, Read, Update, Delete (CRUD) operations.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>NETCONF uses a remote procedure call\u00a0(<a href=\"https:\/\/en.wikipedia.org\/wiki\/Remote_procedure_call\">RPC<\/a>)\u00a0model to communicate between clients\u2014typically\u00a0scripts or applications\u2014with\u00a0servers (the\u00a0network devices).\u00a0Clients send RPCs (requests) and network devices respond with RPC\u00a0replies.\u00a0While NETCONF is transport protocol agnostic, Secure Shell (SSH) is required to be supported, and is the most typically used. All configuration data and protocol messages\u00a0(RPCs and RPC replies)\u00a0are encoded using Extensible Markup Language (XML).<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>NETCONF uses a configuration lock to ensure that conflicting changes aren\u2019t made simultaneously. This feature, along with the two-way (RPC) communication,\u00a0can be leveraged to make atomic changes across an entire network of devices, ensuring \u201croll-back\u201d to original state if changes fail on any of the devices.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>In addition to configuration data, NETCONF also defines state data and allows network devices to send notifications to clients. This allows for network monitoring and telemetry-type data to be conveyed in addition to (or in support of) configuration changes.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>REST<\/h2>\n<p>If you hang out around\u00a0web\u00a0developers, you\u2019ve heard someone talk about RESTful APIs. REST is short for\u00a0Representational State Transfer. While that sounds complex, the easiest way to think of it is \u201chow the web works.\u201d\u00a0It\u2019s defined in full detail in a PhD dissertation titled\u00a0<a href=\"https:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/top.htm\">\u201cArchitectural Styles and the Design of Network-based Software Architectures\u201d<\/a> by Roy Thomas Fielding.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>Essentially, RESTful or REST-like interfaces use the constructs of HTTP to communicate. Standard hypertext commands like GET, PUT,\u00a0POST, DELETE are used.\u00a0However, instead of a browser pulling down a webpage for you to view, we\u2019re now using HTTP to communicate about any resource,\u00a0potentially including network device configurations. And that brings us to our next API\u2026<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>RESTCONF<\/h2>\n<p>RESTCONF\u00a0(<a href=\"https:\/\/tools.ietf.org\/html\/rfc8040\">RFC 8040<\/a>)\u00a0is\u00a0essentially\u00a0just a RESTful implementation of NETCONF. In other words, RESTCONF is NETCONF based on HTTP(s).\u00a0More accurately, it is \u201can HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).\u201d<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>Other changes include the fact that RESTCONF can encode data as either XML or\u00a0JavaScript Object Notation (JSON). Many find JSON easier to read and work with\u00a0than XML.\u00a0RESTCONF also introduces the concept of an \u201cevent stream\u201d\u00a0which allows a client to subscribe to an ongoing asynchronous stream of NETCONF Event Notifications, enhancing telemetry capabilities somewhat.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>Network devices can support NETCONF, RESTCONF, or both.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>YANG<\/h2>\n<p>YANG\u00a0(<a href=\"https:\/\/tools.ietf.org\/html\/rfc7950\">RFC 7950<\/a>)\u00a0is not an API, but it\u2019s important to note here anyway. That\u2019s because YANG is \u201ca data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols.\u201d That includes,\u00a0of course,\u00a0both NETCONF and RESTCONF.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>So you have YANG, which is the data model (template) for formatting your data. Then you use either NETCONF or RESTCONF to encode that data with XML or JSON and send it to (or receive it from) network devices over SSH or HTTP(s).\u00a0Clear as mud? Great. Back to the original question\u2026<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2>Is\u00a0the API the new CLI?<\/h2>\n<p>As I hope you can see from the quick run-down above, APIs are very powerful tools for interacting with your network devices. They are specifically designed to allow programs to communicate reliably with network devices. These programs might be scripts that you write yourself to speed up common configuration or troubleshooting tasks. They might also be\u00a0comprehensive intent based SDN controllers that abstract the individual network devices completely away and let you interface with the entire network as a single system.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>This power and flexibility will surely make them a big part of every network, and so\u00a0it\u2019s important to\u00a0be familiar with them. However, I don\u2019t think we\u2019ll see the CLI disappear any time soon, if at all. CLIs are still a great way for a human to interact with a single network device, and it\u2019s likely that will be needed from time to time\u00a0for a long time to come.<span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>My\u00a0take is that APIs are here to stay, but so is the CLI; it\u2019s our job as engineers to learn both, and apply them each effectively.<\/p>\n<p style=\"text-align: right;\"><em>This post first appeared <a href=\"http:\/\/www.myriadsupply.com\/blog\/?p=3601\">on the Myriad blog<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The API is the new CLI.\u00a0 If you\u2019re a network <a href=\"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/\"> &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":2872,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"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":""},"categories":[836,23,27],"tags":[833,77,154,162,804,802,211,811,464,468,474,569,834,835,619,673],"class_list":["post-2870","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-networking","category-sdn","category-technology","tag-api","tag-architecture","tag-cli","tag-configuration","tag-configuration-change","tag-configuration-changes","tag-developer","tag-myriad","tag-netconf","tag-network-engineer","tag-networking","tag-protocol","tag-rest","tag-restconf","tag-sdn","tag-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The API is the New CLI: Fact or Fiction? ~ Chris Grundemann<\/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:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The API is the New CLI: Fact or Fiction? ~ Chris Grundemann\" \/>\n<meta property=\"og:description\" content=\"The API is the new CLI.\u00a0 If you\u2019re a network ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/\" \/>\n<meta property=\"og:site_name\" content=\"Chris Grundemann\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/chris.grundemann\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-28T16:43:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-08T15:13:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"686\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"~Chris\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/ChrisGrundemann\" \/>\n<meta name=\"twitter:site\" content=\"@ChrisGrundemann\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"~Chris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/\"},\"author\":{\"name\":\"~Chris\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#\\\/schema\\\/person\\\/16a6af2797267c7d91f29876d5a0870f\"},\"headline\":\"The API is the New CLI: Fact or Fiction?\",\"datePublished\":\"2017-07-28T16:43:15+00:00\",\"dateModified\":\"2021-07-08T15:13:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/\"},\"wordCount\":838,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/chrisgrundemann.com\\\/wp-content\\\/uploads\\\/2017\\\/07\\\/3383135088_9a1580b56a_b.jpg\",\"keywords\":[\"API\",\"Architecture\",\"CLI\",\"configuration\",\"configuration change\",\"configuration changes\",\"developer\",\"myriad\",\"NETCONF\",\"network engineer\",\"networking\",\"protocol\",\"REST\",\"RESTCONF\",\"SDN\",\"Technology\"],\"articleSection\":[\"Networking\",\"SDN\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/\",\"url\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/\",\"name\":\"The API is the New CLI: Fact or Fiction? ~ Chris Grundemann\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/chrisgrundemann.com\\\/wp-content\\\/uploads\\\/2017\\\/07\\\/3383135088_9a1580b56a_b.jpg\",\"datePublished\":\"2017-07-28T16:43:15+00:00\",\"dateModified\":\"2021-07-08T15:13:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#primaryimage\",\"url\":\"https:\\\/\\\/chrisgrundemann.com\\\/wp-content\\\/uploads\\\/2017\\\/07\\\/3383135088_9a1580b56a_b.jpg\",\"contentUrl\":\"https:\\\/\\\/chrisgrundemann.com\\\/wp-content\\\/uploads\\\/2017\\\/07\\\/3383135088_9a1580b56a_b.jpg\",\"width\":1024,\"height\":686,\"caption\":\"API vs CLI\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/2017\\\/api-new-cli-fact-fiction\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/chrisgrundemann.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/chrisgrundemann.com\\\/index.php\\\/category\\\/technology\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The API is the New CLI: Fact or Fiction?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#website\",\"url\":\"https:\\\/\\\/chrisgrundemann.com\\\/\",\"name\":\"Chris Grundemann\",\"description\":\"Use technology, marketing, and strategy to take your growing business to the next level.\",\"publisher\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/chrisgrundemann.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#organization\",\"name\":\"Grundemann Technology Solutions\",\"url\":\"https:\\\/\\\/chrisgrundemann.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/chrisgrundemann.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/cropped-GTS-Logo.png\",\"contentUrl\":\"https:\\\/\\\/chrisgrundemann.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/cropped-GTS-Logo.png\",\"width\":512,\"height\":512,\"caption\":\"Grundemann Technology Solutions\"},\"image\":{\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/ChrisGrundemann\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/grundemann\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/cgrundemann\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJ3Pk4AAVMBG4KCzxYAtExA\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/chrisgrundemann.com\\\/#\\\/schema\\\/person\\\/16a6af2797267c7d91f29876d5a0870f\",\"name\":\"~Chris\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cbff57968626714c5bdb525f740f898c0d1e506a63c350b6a3341e57337e7fc7?s=96&d=mm&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cbff57968626714c5bdb525f740f898c0d1e506a63c350b6a3341e57337e7fc7?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cbff57968626714c5bdb525f740f898c0d1e506a63c350b6a3341e57337e7fc7?s=96&d=mm&r=pg\",\"caption\":\"~Chris\"},\"description\":\"Creative|Technologist. Curious. Boisterous. Autotelic Autodidact. Heretic. Hacker. Rider of Boards. Writer of Words. ...Traveler of Time...\",\"sameAs\":[\"https:\\\/\\\/chrisgrundemann.com\",\"https:\\\/\\\/www.facebook.com\\\/chris.grundemann\",\"http:\\\/\\\/instagram.com\\\/chrisgrundemann\",\"www.linkedin.com\\\/in\\\/cgrundemann\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/ChrisGrundemann\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCJ3Pk4AAVMBG4KCzxYAtExA\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The API is the New CLI: Fact or Fiction? ~ Chris Grundemann","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:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/","og_locale":"en_US","og_type":"article","og_title":"The API is the New CLI: Fact or Fiction? ~ Chris Grundemann","og_description":"The API is the new CLI.\u00a0 If you\u2019re a network ...","og_url":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/","og_site_name":"Chris Grundemann","article_author":"https:\/\/www.facebook.com\/chris.grundemann","article_published_time":"2017-07-28T16:43:15+00:00","article_modified_time":"2021-07-08T15:13:31+00:00","og_image":[{"width":1024,"height":686,"url":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg","type":"image\/jpeg"}],"author":"~Chris","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/ChrisGrundemann","twitter_site":"@ChrisGrundemann","twitter_misc":{"Written by":"~Chris","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#article","isPartOf":{"@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/"},"author":{"name":"~Chris","@id":"https:\/\/chrisgrundemann.com\/#\/schema\/person\/16a6af2797267c7d91f29876d5a0870f"},"headline":"The API is the New CLI: Fact or Fiction?","datePublished":"2017-07-28T16:43:15+00:00","dateModified":"2021-07-08T15:13:31+00:00","mainEntityOfPage":{"@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/"},"wordCount":838,"commentCount":0,"publisher":{"@id":"https:\/\/chrisgrundemann.com\/#organization"},"image":{"@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#primaryimage"},"thumbnailUrl":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg","keywords":["API","Architecture","CLI","configuration","configuration change","configuration changes","developer","myriad","NETCONF","network engineer","networking","protocol","REST","RESTCONF","SDN","Technology"],"articleSection":["Networking","SDN","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/","url":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/","name":"The API is the New CLI: Fact or Fiction? ~ Chris Grundemann","isPartOf":{"@id":"https:\/\/chrisgrundemann.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#primaryimage"},"image":{"@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#primaryimage"},"thumbnailUrl":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg","datePublished":"2017-07-28T16:43:15+00:00","dateModified":"2021-07-08T15:13:31+00:00","breadcrumb":{"@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#primaryimage","url":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg","contentUrl":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg","width":1024,"height":686,"caption":"API vs CLI"},{"@type":"BreadcrumbList","@id":"https:\/\/chrisgrundemann.com\/index.php\/2017\/api-new-cli-fact-fiction\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/chrisgrundemann.com\/"},{"@type":"ListItem","position":2,"name":"Technology","item":"https:\/\/chrisgrundemann.com\/index.php\/category\/technology\/"},{"@type":"ListItem","position":3,"name":"The API is the New CLI: Fact or Fiction?"}]},{"@type":"WebSite","@id":"https:\/\/chrisgrundemann.com\/#website","url":"https:\/\/chrisgrundemann.com\/","name":"Chris Grundemann","description":"Use technology, marketing, and strategy to take your growing business to the next level.","publisher":{"@id":"https:\/\/chrisgrundemann.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/chrisgrundemann.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/chrisgrundemann.com\/#organization","name":"Grundemann Technology Solutions","url":"https:\/\/chrisgrundemann.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/chrisgrundemann.com\/#\/schema\/logo\/image\/","url":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2020\/10\/cropped-GTS-Logo.png","contentUrl":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2020\/10\/cropped-GTS-Logo.png","width":512,"height":512,"caption":"Grundemann Technology Solutions"},"image":{"@id":"https:\/\/chrisgrundemann.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ChrisGrundemann","https:\/\/www.linkedin.com\/company\/grundemann","https:\/\/www.linkedin.com\/in\/cgrundemann\/","https:\/\/www.youtube.com\/channel\/UCJ3Pk4AAVMBG4KCzxYAtExA"]},{"@type":"Person","@id":"https:\/\/chrisgrundemann.com\/#\/schema\/person\/16a6af2797267c7d91f29876d5a0870f","name":"~Chris","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cbff57968626714c5bdb525f740f898c0d1e506a63c350b6a3341e57337e7fc7?s=96&d=mm&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/cbff57968626714c5bdb525f740f898c0d1e506a63c350b6a3341e57337e7fc7?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cbff57968626714c5bdb525f740f898c0d1e506a63c350b6a3341e57337e7fc7?s=96&d=mm&r=pg","caption":"~Chris"},"description":"Creative|Technologist. Curious. Boisterous. Autotelic Autodidact. Heretic. Hacker. Rider of Boards. Writer of Words. ...Traveler of Time...","sameAs":["https:\/\/chrisgrundemann.com","https:\/\/www.facebook.com\/chris.grundemann","http:\/\/instagram.com\/chrisgrundemann","www.linkedin.com\/in\/cgrundemann","https:\/\/x.com\/https:\/\/twitter.com\/ChrisGrundemann","https:\/\/www.youtube.com\/channel\/UCJ3Pk4AAVMBG4KCzxYAtExA"]}]}},"jetpack_featured_media_url":"https:\/\/chrisgrundemann.com\/wp-content\/uploads\/2017\/07\/3383135088_9a1580b56a_b.jpg","jetpack_shortlink":"https:\/\/wp.me\/ps8ie-Ki","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/posts\/2870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/comments?post=2870"}],"version-history":[{"count":0,"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/posts\/2870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/media\/2872"}],"wp:attachment":[{"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/media?parent=2870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/categories?post=2870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chrisgrundemann.com\/index.php\/wp-json\/wp\/v2\/tags?post=2870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}