

{"id":17028,"date":"2018-05-29T10:18:56","date_gmt":"2018-05-29T10:18:56","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=17028"},"modified":"2018-05-29T10:18:56","modified_gmt":"2018-05-29T10:18:56","slug":"hbase-client-api","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/","title":{"rendered":"HBase Client API &#8211; HTable, Put, Get, Delete, Result"},"content":{"rendered":"<p><span style=\"font-weight: 400\">In this <strong>HBase<\/strong> article, we will discuss the whole concept of HBase Client API. Also, we will introduce Class HTable to understand well. In order to perform CRUD operations on HBase tables, we use Client API for HBase. Also, in this HBase tutorial, we will see HBase client example.<\/span><\/p>\n<p>So, let&#8217;s understand HBase Client API.<\/p>\n<h2><span style=\"font-weight: 400\">What is HBase Client API?<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Basically, to perform CRUD operations on HBase tables we use <strong>Java<\/strong> client API for HBase. Since HBase has a Java Native API and it is written in Java thus it offers programmatic access to DML (Data Manipulation Language).<\/span><\/p>\n<h3>i. Class HBase Configuration<\/h3>\n<p><span style=\"font-weight: 400\">This class adds HBase configuration files to a Configuration. It belongs to the <strong>org.apache.hadoop.hbase<\/strong> package.<\/span><\/p>\n<h3>ii. Method<\/h3>\n<p><b>static org.apache.hadoop.conf.Configuration create()<\/b><\/p>\n<p><span style=\"font-weight: 400\">To create a Configuration with HBase resources, we use this method.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Class HTable in HBase Client API<\/span><\/h2>\n<p><span style=\"font-weight: 400\">An HBase internal class which represents an HBase table is HTable. Basically, to communicate with a single HBase table, we use this implementation of a table. It belongs to the <strong>org.apache.hadoop.hbase.client<\/strong> class.<\/span><\/p>\n<p><strong>a. Constructors<\/strong><\/p>\n<p><b>i. HTable()<\/b><\/p>\n<p><b>ii. HTable(TableName tableName, ClusterConnection connection, ExecutorService pool)<\/b><\/p>\n<p><span style=\"font-weight: 400\">We can create an object to access an HBase table, by using this constructor.<\/span><\/p>\n<p><strong>b. Methods<\/strong><\/p>\n<p><b>i. void close()<\/b><\/p>\n<p><span style=\"font-weight: 400\">Basically, to release all the resources of the HTable, we use this method.<\/span><\/p>\n<p><b>ii. void delete(Delete delete)<\/b><\/p>\n<p><span style=\"font-weight: 400\">The method \u201cvoid delete(Delete delete)\u201d helps to delete the specified cells\/row.<\/span><\/p>\n<p><b>iii. boolean exists(Get get)<\/b><\/p>\n<p><span style=\"font-weight: 400\">As specified by Get, it is possible to test the existence of columns in the table, with this method.<\/span><\/p>\n<p><b>iv. Result get(Get get)<\/b><\/p>\n<p><span style=\"font-weight: 400\">This method retrieves certain cells from a given row.<\/span><\/p>\n<p><b>v. org.apache.hadoop.conf.Configuration getConfiguration()<\/b><\/p>\n<p><span style=\"font-weight: 400\">It returns the Configuration object used by this instance.<\/span><\/p>\n<p><b>vi. TableName getName()<\/b><\/p>\n<p><span style=\"font-weight: 400\">This method returns the table name instance of this table.<\/span><\/p>\n<p><b>vii. HTableDescriptor getTableDescriptor()<\/b><\/p>\n<p>It returns the table descriptor for this table.<\/p>\n<p><b>viii. byte[] getTableName()<\/b><\/p>\n<p><span style=\"font-weight: 400\">This method returns the name of this table.<\/span><\/p>\n<p><b>ix. void put(Put put)<\/b><\/p>\n<p><span style=\"font-weight: 400\">We can insert data into the table, by using this method.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Class Put in HBase Client API<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In order to perform put operations for a single row, we use this class. This class belongs to the <strong>org.apache.hadoop.hbase.client<\/strong> package.<\/span><br \/>\n<strong>a. Constructors<\/strong><\/p>\n<p><b>i. Put(byte[] row)<\/b><\/p>\n<p><span style=\"font-weight: 400\">We can create a Put operation for the specified row, by using this constructor.<\/span><\/p>\n<p><b>ii. Put(byte[] rowArray, int rowOffset, int rowLength)<\/b><\/p>\n<p><span style=\"font-weight: 400\">However, to make a copy of the passed-in row key to keep local, we use it.<\/span><\/p>\n<p><b>iii. Put(byte[] rowArray, int rowOffset, int rowLength, long ts)<\/b><\/p>\n<p><span style=\"font-weight: 400\">We can make a copy of the passed-in row key to keep local, by using this constructor.<\/span><\/p>\n<p><b>iv. Put(byte[] row, long ts)<\/b><\/p>\n<p><span style=\"font-weight: 400\">Basically, to create a Put operation for the specified row, using a given timestamp, we use it.<\/span><\/p>\n<p><strong>b. Methods<\/strong><\/p>\n<p><b>i. Put add(byte[] family, byte[] qualifier, byte[] value)<\/b><\/p>\n<p><span style=\"font-weight: 400\">The method \u201cPut add(byte[] family, byte[] qualifier, byte[] value)\u201d adds the specified column and value to this Put operation.<\/span><\/p>\n<p><b>ii. Put add(byte[] family, byte[] qualifier, long ts, byte[] value)<\/b><br \/>\n<span style=\"font-weight: 400\">With the specified timestamp, it adds the specified column and value, as its version to this Put operation.<\/span><\/p>\n<p><b>iii. Put add(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value)<\/b><br \/>\n<span style=\"font-weight: 400\">This method adds the specified column and value, with the specified timestamp as its version to this Put operation.<\/span><\/p>\n<p><b>iv. Put add(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value)<\/b><br \/>\n<span style=\"font-weight: 400\">With the specified timestamp, it adds the specified column and value, as its version to this Put operation.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Class Get in HBase Client API<\/span><\/h2>\n<p><span style=\"font-weight: 400\">To perform Get operations on a single row, we use this class. It belongs to the org.apache.hadoop.hbase.client package.<\/span><br \/>\n<strong>a. Constructor<\/strong><\/p>\n<p><b style=\"font-family: Verdana, Geneva, sans-serif\">i. Get(byte[] row)<\/b><\/p>\n<p><span style=\"font-weight: 400\">It is possible to create a Get operation for the specified row, by using this constructor.<\/span><\/p>\n<p><b style=\"font-family: Verdana, Geneva, sans-serif\">ii. Get(Get get)<\/b><\/p>\n<p><strong>b. Methods<\/strong><\/p>\n<p><b style=\"font-family: Verdana, Geneva, sans-serif\">i. Get addColumn(byte[] family, byte[] qualifier)<\/b><\/p>\n<p><span style=\"font-weight: 400\">To retrieves the column from the specific family with the specified qualifier, this method helps.<\/span><\/p>\n<p><b style=\"font-family: Verdana, Geneva, sans-serif\">ii. Get addFamily(byte[] family)<\/b><\/p>\n<p><span style=\"font-weight: 400\">Whereas this one helps to retrieves all columns from the specified family.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Class Delete in HBase Client API<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In order to perform delete operations on a single row, we use this Class. Instantiate a Delete object with the row to delete, to delete an entire row. It belongs to the org.apache.hadoop.hbase.client package.<\/span><br \/>\n<strong>a. Constructor<\/strong><\/p>\n<p><strong>i. Delete(byte[] row)<\/strong><\/p>\n<p><span style=\"font-weight: 400\">To create a delete operation for the specified row, we use it.<\/span><\/p>\n<p><strong>ii. Delete(byte[] rowArray, int rowOffset, int rowLength)<\/strong><\/p>\n<p><span style=\"font-weight: 400\">This constructor creates a Delete operation for the specified row and timestamp.<\/span><\/p>\n<p><strong>iii. Delete(byte[] rowArray, int rowOffset, int rowLength, long ts)<\/strong><\/p>\n<p>Basically, the constructor \u201cDelete(byte[] rowArray, int rowOffset, int rowLength, long ts)\u201d creates a Delete operation.<\/p>\n<p><strong>iv. Delete(byte[] row, long timestamp)<\/strong><\/p>\n<p><span style=\"font-weight: 400\">Again the constructor \u201cDelete(byte[] row, long timestamp)\u201d also creates a Delete operation.<\/span><\/p>\n<p><strong>b. Methods<\/strong><\/p>\n<p><b>i. Delete addColumn(byte[] family, byte[] qualifier)<\/b><\/p>\n<p><span style=\"font-weight: 400\">This method helps to delete the latest version of the specified column.<\/span><\/p>\n<p><b>ii. Delete addColumns(byte[] family, byte[] qualifier, long timestamp)<\/b><\/p>\n<p><span style=\"font-weight: 400\">However, to delete all versions of the specified column we use this method, especially, With a timestamp less than or equal to the specified timestamp.<\/span><\/p>\n<p><b>iii. Delete addFamily(byte[] family)<\/b><\/p>\n<p><span style=\"font-weight: 400\">The method \u201cDelete addFamily(byte[] family)\u201d \u00a0deletes all versions of all columns of the specified family.<\/span><\/p>\n<p><b>iv. Delete addFamily(byte[] family, long timestamp)<\/b><\/p>\n<p><span style=\"font-weight: 400\">Again, with a timestamp less than or equal to the specified timestamp, this method also deletes all columns of the specified family.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Class Result in HBase Client API\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In order to get a single row result of a Get or a Scan query, we use class result HBase Client API.<\/span><br \/>\n<strong>a. Constructors<\/strong><br \/>\n<b>i. Result()<\/b><br \/>\n<span style=\"font-weight: 400\">With no KeyValue payload, it is possible to create an empty Result; returns null if you call raw Cells(), by using this constructor.<\/span><\/p>\n<p><strong>b. Methods<\/strong><br \/>\n<b>i. byte[] getValue(byte[] family, byte[] qualifier)<\/b><br \/>\n<span style=\"font-weight: 400\">Basically, in order to get the latest version of the specified column, we use this method.<\/span><br \/>\n<b>ii. byte[] getRow()<\/b><br \/>\nMoreover, to retrieve the row key which corresponds to the row from which this Result was created, we use this method.<br \/>\nSo, this was all about HBase Client API. Hope you like our explanation.<\/p>\n<h2><span style=\"font-weight: 400\">Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Hence, in this HBase Client API tutorial, we have seen the whole concept of HBase Client API. Moreover, we saw Class Htable, Class put, Class Get, Class delete, and Class result in HBase client. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Also, we look at methods, constructor &amp; examples of HBase Client API. Still, if any doubt, ask in the comment tab.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this HBase article, we will discuss the whole concept of HBase Client API. Also, we will introduce Class HTable to understand well. In order to perform CRUD operations on HBase tables, we use&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":18475,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[2524,2527,2529,2530,2531,5400,5401,5402,5442,5476,15739],"class_list":["post-17028","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hbase","tag-class-delete","tag-class-get","tag-class-htable","tag-class-put","tag-class-result","tag-hbase-client-api","tag-hbase-client-api-meaning","tag-hbase-client-api-tutorial","tag-hbase-java-api-example","tag-hbase-rest-api","tag-what-is-hbase-client-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HBase Client API - HTable, Put, Get, Delete, Result - DataFlair<\/title>\n<meta name=\"description\" content=\"HBase client API, Class HTable, Class put, class get, class delete, class result, HBase rest APi, HBase Client API tutorial, HBAse Java API example\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/hbase-client-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HBase Client API - HTable, Put, Get, Delete, Result - DataFlair\" \/>\n<meta property=\"og:description\" content=\"HBase client API, Class HTable, Class put, class get, class delete, class result, HBase rest APi, HBase Client API tutorial, HBAse Java API example\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/hbase-client-api\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-29T10:18:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Client-API-01-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HBase Client API - HTable, Put, Get, Delete, Result - DataFlair","description":"HBase client API, Class HTable, Class put, class get, class delete, class result, HBase rest APi, HBase Client API tutorial, HBAse Java API example","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:\/\/data-flair.training\/blogs\/hbase-client-api\/","og_locale":"en_US","og_type":"article","og_title":"HBase Client API - HTable, Put, Get, Delete, Result - DataFlair","og_description":"HBase client API, Class HTable, Class put, class get, class delete, class result, HBase rest APi, HBase Client API tutorial, HBAse Java API example","og_url":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-05-29T10:18:56+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Client-API-01-1.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"HBase Client API &#8211; HTable, Put, Get, Delete, Result","datePublished":"2018-05-29T10:18:56+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/"},"wordCount":1103,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Client-API-01-1.jpg","keywords":["Class Delete","Class Get","Class HTable","Class Put","Class Result","HBase Client API","HBase Client API meaning","HBase Client API tutorial","HBase Java API example","HBase rest API","What is HBase Client API"],"articleSection":["HBase Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/hbase-client-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/","url":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/","name":"HBase Client API - HTable, Put, Get, Delete, Result - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Client-API-01-1.jpg","datePublished":"2018-05-29T10:18:56+00:00","description":"HBase client API, Class HTable, Class put, class get, class delete, class result, HBase rest APi, HBase Client API tutorial, HBAse Java API example","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/hbase-client-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Client-API-01-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/06\/HBase-Client-API-01-1.jpg","width":1200,"height":628,"caption":"HBase Client API - HTable, Put, Get, Delete, Result"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/hbase-client-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"HBase Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/hbase\/"},{"@type":"ListItem","position":3,"name":"HBase Client API &#8211; HTable, Put, Get, Delete, Result"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team specializes in creating clear, actionable content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Backed by industry expertise, we make learning easy and career-oriented for beginners and pros alike.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam3\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/17028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=17028"}],"version-history":[{"count":0,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/17028\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/18475"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=17028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=17028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=17028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}