{"id":18529,"date":"2020-06-25T14:57:12","date_gmt":"2020-06-25T21:57:12","guid":{"rendered":"https:\/\/careerkarma.com\/blog\/?p=18529"},"modified":"2023-12-01T03:34:27","modified_gmt":"2023-12-01T11:34:27","slug":"what-is-crud","status":"publish","type":"post","link":"https:\/\/careerkarma.com\/blog\/what-is-crud\/","title":{"rendered":"What is CRUD?"},"content":{"rendered":"\n<p>An API should fill four types of functions. It should be able to create new data and read, update, and delete existing data. In computer science, we refer to these options as CRUD.&nbsp;<br><\/p>\n\n\n\n<p>The CRUD method is essential in building web applications because it allows you to structure the models you build for your APIs. But how does CRUD work? How do you interact with APIs using CRUD?<br><\/p>\n\n\n\n<p>In this article, we answer those questions. We\u2019ll start by discussing the basics of CRUD and then walk you through a few examples of how to interact with an API using CRUD.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Do We Need CRUD?<\/h2>\n\n\n\n<p>Let\u2019s say we are building an API that stores the coffees sold at a cafe we own. This API should be able to store different coffee objects. A coffee object may include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A unique identifier for the coffee<\/li>\n\n\n\n<li>The name of the coffee<\/li>\n\n\n\n<li>The price of the coffee<\/li>\n<\/ul>\n\n\n\n<p>We want to make sure the users can interact with and change the data stored on our API. That\u2019s why we need to follow the CRUD structure. After all, what\u2019s an API that stores coffees good for if the company can\u2019t change the price of their coffees? Why would a company use an API that doesn\u2019t allow it to remove records?&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is CRUD?<\/h2>\n\n\n\n<p>CRUD is an acronym for Create, Read, Update, and Delete.<\/p>\n\n\n\n<p>When you\u2019re working with web services, CRUD corresponds to the following HTTP methods, which are used to tell a web server how you want to interact with a website:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create: POST<\/li>\n\n\n\n<li>Read: GET<\/li>\n\n\n\n<li>Update: PUT<\/li>\n\n\n\n<li>Delete: DELETE<\/li>\n<\/ul>\n\n\n\n<p>Let\u2019s look at each one individually.<br><\/p>\n\n\n\n<p>We\u2019re going to use the cURL command line utility to create example queries to a coffee API so that you can see how these operations work. Before we get started, run the following command in a terminal on your computer to ensure cURL is installed:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>curl<\/pre><\/div>\n\n\n\n<p>If an error \u201ccurl: command not found\u201d appears in your terminal, you\u2019ll need to install cURL. You can do so by following <a href=\"https:\/\/www.cyberciti.biz\/faq\/how-to-install-curl-command-on-a-ubuntu-linux\/\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\">this tutorial<\/a>. Otherwise, you\u2019re ready to get started!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create<\/h3>\n\n\n\n<p>An API that stores data for our cafe should allow us to add new records to the menu. In this case, we should be able to create a new coffee item by specifying its name and price.<br><\/p>\n\n\n\n<p>To add a new coffee to the menu, we can use a POST request, which allows us to submit data to our API that will be stored in a database.<br><\/p>\n\n\n\n<p>These are details of the coffee item we want to add:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Name: Espresso<\/li>\n\n\n\n<li>Price: 1.95<\/li>\n<\/ul>\n\n\n\n<p>The following cURL command allows us to create a coffee with these details using our API:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>curl -X POST http:\/\/localhost:5000\/add -d name=Espresso -d price=1.95<\/pre><\/div>\n\n\n\n<p>In this command, we use the -X flag to structure our request as a POST request. We then use -d flags to specify the data we want to send to our API. In this case, we use two -d flags: one to specify the name of the coffee, and the other to specify its price. Our code returns:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>{\"name\":\"Espresso\",\"price\":\"1.95\"}<\/pre><\/div>\n\n\n\n<p>This command creates a new coffee in our database with the name \u201cEspresso\u201d and the price \u201c1.95\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Read<\/h3>\n\n\n\n<p>Our API should allow us to see a list of all the coffees on our menu. To see this data, we can use a GET request. This allows us to see a list of the coffees on our menu without making changes to the data stored on our API.<br><\/p>\n\n\n\n<p>This command allows us to retrieve a list of coffees from our API:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>curl -X GET http:\/\/localhost:5000\/coffees<\/pre><\/div>\n\n\n\n<p>Our command returns:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>{\n  \"coffees\": [\n\t{\n  \t\"id\": 1,\n  \t\"name\": \"Espresso\",\n  \t\"price\": 1.95\n\t},\n\t{\n  \t\"id\": 2,\n  \t\"name\": \"Latte\",\n  \t\"price\": 2.6\n\t}\n  ]\n}<\/pre><\/div>\n\n\n\n<p>As you can see, this resource allows us to retrieve a list of coffees. An API that uses the CRUD structure often allows you to retrieve individual records too. For instance, the following command allows us to retrieve data on one coffee item:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>curl -X GET http:\/\/localhost:5000\/coffees\/1<\/pre><\/div>\n\n\n\n<p>Our code returns:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>{\n  \"coffees\": [\n\t{\n  \t\"id\": 1,\n  \t\"name\": \"Espresso\",\n  \t\"price\": 1.95\n\t}\n  ]\n}<\/pre><\/div>\n\n\n\n<p>You can see that our command has returned the coffee whose id is equal to 1. No changes have been made to the data because GET requests can only retrieve data from an API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Update<\/h3>\n\n\n\n<p>We also need to support updating records in our API. The corresponding HTTP method for updating a resource using CRUD is PUT.<br><\/p>\n\n\n\n<p>If we want to change the price of our Latte to $2.75, we could use the following PUT request:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>curl -X PUT http:\/\/localhost:5000\/update\/2 -d name=Latte -d price=2.75<\/pre><\/div>\n\n\n\n<p>Our code returns:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>{\n  \"coffees\": [\n\t{\n  \t\"id\": 2,\n  \t\"name\": \"Latte\",\n  \t\"price\": 2.75\n\t}\n  ]\n}<\/pre><\/div>\n\n\n\n<p>This request changes the name and the price of the Latte record to the values we specified in our cURL command.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Delete<\/h3>\n\n\n\n<p>The final operation in the CRUD structure is Delete, whose corresponding HTTP method is DELETE (this one\u2019s really easy to remember!)<\/p>\n\n\n\n<p>Suppose we ran out of espresso powder and we have to remove it from our menu. We could do so using the following request:<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>curl -X DELETE http:\/\/localhost:5000\/delete\/1<\/pre><\/div>\n\n\n\n<p>When we run this code, no response is returned. This is because the coffee we have specified is deleted from our server. If we run a GET request to see the list of coffees again, we see that the record with the value 1\u2014the Espresso\u2014has been removed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CRUD Next Steps<\/h2>\n\n\n\n<p>Do you want to explore CRUD further? That\u2019s great news!<\/p>\n\n\n\n<p>You now know the basics. CRUD is a structure that states the four main operations that a web service should have. To advance your knowledge of CRUD, think of a hypothetical API you can design and make a list of routes.<\/p>\n\n\n\n<p>For example, an API to track your favorite songs could have the following routes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/songs (GET)<\/li>\n\n\n\n<li>\/songs\/new (POST)<\/li>\n\n\n\n<li>\/songs\/:id (GET)<\/li>\n\n\n\n<li>\/songs\/:id (PUT)<\/li>\n\n\n\n<li>\/songs\/:id (DELETE)<\/li>\n<\/ul>\n\n\n\n<p>Try making a list of routes for your own API, and write down their corresponding HTTP methods.<\/p>\n\n\n\n<p>If you want to play around with the web requests we used in this tutorial, you can view the code we used to host the API on GitHub. Now you\u2019re ready to start working with CRUD APIs like an expert!<\/p>\n","protected":false},"excerpt":{"rendered":"An API should fill four types of functions. It should be able to create new data and read, update, and delete existing data. In computer science, we refer to these options as CRUD.&nbsp; The CRUD method is essential in building web applications because it allows you to structure the models you build for your APIs.&hellip;","protected":false},"author":240,"featured_media":18530,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18070],"tags":[],"class_list":{"0":"post-18529","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-software-engineering-skills"},"acf":{"post_sub_title":"","sprint_id":"","query_class":"What is a {technical term}","school_sft":"","parent_sft":"","school_privacy_policy":"","has_review":"","is_sponser_post":"","is_guest_post":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>What is CRUD?: A Complete Guide | Career Karma<\/title>\n<meta name=\"description\" content=\"Create, Read, Update, and Delete (CRUD) are the main functions that should be supported by web services and databases.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is CRUD?\" \/>\n<meta property=\"og:description\" content=\"Create, Read, Update, and Delete (CRUD) are the main functions that should be supported by web services and databases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\" \/>\n<meta property=\"og:site_name\" content=\"Career Karma\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/careerkarmaapp\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-25T21:57:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-01T11:34:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1020\" \/>\n\t<meta property=\"og:image:height\" content=\"718\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"James Gallagher\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@career_karma\" \/>\n<meta name=\"twitter:site\" content=\"@career_karma\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Gallagher\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\"},\"author\":{\"name\":\"James Gallagher\",\"@id\":\"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94\"},\"headline\":\"What is CRUD?\",\"datePublished\":\"2020-06-25T21:57:12+00:00\",\"dateModified\":\"2023-12-01T11:34:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\"},\"wordCount\":979,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg\",\"articleSection\":[\"Software Engineering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\",\"url\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\",\"name\":\"What is CRUD?: A Complete Guide | Career Karma\",\"isPartOf\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg\",\"datePublished\":\"2020-06-25T21:57:12+00:00\",\"dateModified\":\"2023-12-01T11:34:27+00:00\",\"author\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94\"},\"description\":\"Create, Read, Update, and Delete (CRUD) are the main functions that should be supported by web services and databases.\",\"breadcrumb\":{\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/careerkarma.com\/blog\/what-is-crud\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage\",\"url\":\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg\",\"contentUrl\":\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg\",\"width\":1020,\"height\":718},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/careerkarma.com\/blog\/what-is-crud\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/careerkarma.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software Engineering\",\"item\":\"https:\/\/careerkarma.com\/blog\/software-engineering-skills\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"What is CRUD?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/careerkarma.com\/blog\/#website\",\"url\":\"https:\/\/careerkarma.com\/blog\/\",\"name\":\"Career Karma\",\"description\":\"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/careerkarma.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94\",\"name\":\"James Gallagher\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg\",\"contentUrl\":\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg\",\"caption\":\"James Gallagher\"},\"description\":\"James Gallagher is a self-taught programmer and the technical content manager at Career Karma. He has experience in range of programming languages and extensive expertise in Python, HTML, CSS, and JavaScript. James has written hundreds of programming tutorials, and he frequently contributes to publications like Codecademy, Treehouse, Repl.it, Afrotech, and others.\",\"url\":\"https:\/\/careerkarma.com\/blog\/author\/jamesgallagher\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is CRUD?: A Complete Guide | Career Karma","description":"Create, Read, Update, and Delete (CRUD) are the main functions that should be supported by web services and databases.","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:\/\/careerkarma.com\/blog\/what-is-crud\/","og_locale":"en_US","og_type":"article","og_title":"What is CRUD?","og_description":"Create, Read, Update, and Delete (CRUD) are the main functions that should be supported by web services and databases.","og_url":"https:\/\/careerkarma.com\/blog\/what-is-crud\/","og_site_name":"Career Karma","article_publisher":"http:\/\/facebook.com\/careerkarmaapp","article_published_time":"2020-06-25T21:57:12+00:00","article_modified_time":"2023-12-01T11:34:27+00:00","og_image":[{"width":1020,"height":718,"url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg","type":"image\/jpeg"}],"author":"James Gallagher","twitter_card":"summary_large_image","twitter_creator":"@career_karma","twitter_site":"@career_karma","twitter_misc":{"Written by":"James Gallagher","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#article","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/"},"author":{"name":"James Gallagher","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94"},"headline":"What is CRUD?","datePublished":"2020-06-25T21:57:12+00:00","dateModified":"2023-12-01T11:34:27+00:00","mainEntityOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/"},"wordCount":979,"commentCount":0,"image":{"@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg","articleSection":["Software Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/careerkarma.com\/blog\/what-is-crud\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/","url":"https:\/\/careerkarma.com\/blog\/what-is-crud\/","name":"What is CRUD?: A Complete Guide | Career Karma","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage"},"image":{"@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg","datePublished":"2020-06-25T21:57:12+00:00","dateModified":"2023-12-01T11:34:27+00:00","author":{"@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94"},"description":"Create, Read, Update, and Delete (CRUD) are the main functions that should be supported by web services and databases.","breadcrumb":{"@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/careerkarma.com\/blog\/what-is-crud\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#primaryimage","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/06\/fabian-grohs-dC6Pb2JdAqs-unsplash.jpg","width":1020,"height":718},{"@type":"BreadcrumbList","@id":"https:\/\/careerkarma.com\/blog\/what-is-crud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/careerkarma.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Software Engineering","item":"https:\/\/careerkarma.com\/blog\/software-engineering-skills\/"},{"@type":"ListItem","position":3,"name":"What is CRUD?"}]},{"@type":"WebSite","@id":"https:\/\/careerkarma.com\/blog\/#website","url":"https:\/\/careerkarma.com\/blog\/","name":"Career Karma","description":"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/careerkarma.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94","name":"James Gallagher","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","caption":"James Gallagher"},"description":"James Gallagher is a self-taught programmer and the technical content manager at Career Karma. He has experience in range of programming languages and extensive expertise in Python, HTML, CSS, and JavaScript. James has written hundreds of programming tutorials, and he frequently contributes to publications like Codecademy, Treehouse, Repl.it, Afrotech, and others.","url":"https:\/\/careerkarma.com\/blog\/author\/jamesgallagher\/"}]}},"_links":{"self":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/18529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/users\/240"}],"replies":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/comments?post=18529"}],"version-history":[{"count":0,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/18529\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media\/18530"}],"wp:attachment":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media?parent=18529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/categories?post=18529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/tags?post=18529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}