{"id":12767,"date":"2022-06-17T09:10:27","date_gmt":"2022-06-17T09:10:27","guid":{"rendered":"https:\/\/blog.cloudthat.com\/?p=12767"},"modified":"2024-06-25T10:58:32","modified_gmt":"2024-06-25T10:58:32","slug":"creation-of-api-iot-application-aws-api-gateway","status":"publish","type":"blog","link":"https:\/\/www.cloudthat.com\/resources\/blog\/best-ways-to-create-an-api-for-an-iot-application-using-aws-api-gateway","title":{"rendered":"Best ways to Create an API for an IoT Application using AWS API Gateway"},"content":{"rendered":"<table style=\"height: 254px;\" border=\"0\" width=\"450\">\n<tbody>\n<tr>\n<td>\n<h2><span style=\"color: #000080;\"><strong>TABLE OF CONTENT<\/strong><\/span><\/h2>\n<\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#overview\">1. Overview<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#createdynamodb\">2. Create DynamoDB Table and inject data<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#createarole\">3. Create a Role for Lambda to access DynamoDB<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#createlambdafunction\">4. Create Lambda function to handle the AP<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#createapigateway\">5. Create API Gateway<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#test\">6. Test<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#conclusion\">7. Conclusion<\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#aboutcloudthat\">8. About CloudThat <\/a><\/td>\n<\/tr>\n<tr>\n<td><a style=\"margin-left: 20px;\" href=\"#faqs\">9. FAQs<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2 id=\"overview\">Overview<\/h2>\n<p><span style=\"color: #000000;\">Most data from IoT applications are stored in databases for convenient access via APIs. This blog talks about the methods for an API Gateway to construct an API to retrieve data from DynamoDB database tables. These APIs are also utilized in mobile and web applications.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/apione.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12773\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/apione.jpg\" alt=\"AWS API Gateway\" width=\"938\" height=\"298\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">In my previous blog, <a href=\"https:\/\/blog.cloudthat.com\/step-by-step-guide-to-store-aws-iot-data-into-s3-bucket\/?utm_source=blog-website&amp;utm-medium=text-link&amp;utm_campaign=step-by-step-guide-to-store-aws-iot-data-into-s3-bucket\/\" target=\"_blank\" rel=\"noopener\"><strong>Step-by-Step Guide to Store IoT data into S3 Bucket,<\/strong><\/a> we get an insight on cost reduction by using AWS S3 bucket. You will be able to learn techniques to store IoT data in DynamoDB using IoT rules.<\/span><\/p>\n<p><span style=\"color: #000000;\">We will create a DynamoDB table and manually inject data into it and an API to access the data in the next segment.<\/span><\/p>\n<h2 id=\"createdynamodb\">Create DynamoDB Table and inject data:<\/h2>\n<p><span style=\"color: #000000;\">Go to the DynamoDB Service in the AWS Console by typing DynamoDB in the search box. Click the Tables option on DynamoDB&#8217;s left side blade, then the Create Table option to create a new table.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12772\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api1.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"188\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Enter the Table name as IoT_table, the primary key as the <strong>partition key<\/strong>, the name as <strong>device_id<\/strong>, and choose\u00a0the <strong>Number<\/strong> option next to the\u00a0field. Enter the <strong>date<\/strong> in the field of the <strong>Sort<\/strong><strong> key<\/strong>\u00a0and pick the\u00a0<strong>String <\/strong>option next to it.\u00a0Finally, click create table option at the bottom.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12774\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api2.png\" alt=\"AWS API Gateway\" width=\"850\" height=\"450\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">We can see that the table has been created and is <strong>Active<\/strong>.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12775\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api3.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"257\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">To inject the data into the database, go to the Actions blade and select Create item on the newly formed IoT_table.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api31.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12776\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api31.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"257\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Enter {&#8220;device_id&#8221;: 1, &#8220;date&#8221;: &#8220;07-03-2022&#8243;,&#8221;temperature&#8221;:34,&#8221;humidity&#8221;:60,&#8221;co2&#8243;:670} in the Attributes area, then click Create item. Create objects with varying values in the same way.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12778\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api5.png\" alt=\"AWS API Gateway\" width=\"715\" height=\"308\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">To verify the injected data, click on <strong>Explore table item<\/strong><\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12779\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api6.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"238\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">At the bottom of the item returned section, all created items will be displayed.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12782\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api7.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"255\" \/><\/a><\/span><\/p>\n<h2 id=\"createarole\">Create a Role for Lambda to access DynamoDB:<\/h2>\n<p><span style=\"color: #000000;\">Enter <strong>IAM<\/strong> in the search box of the AWS console to access the <strong>IAM service<\/strong>. Click <strong>IAM Role<\/strong> on the left side blade of the IAM service, to create a new Role click <strong>Create Role<\/strong> on the console and select Lambda from the services then click Next. Look for DynamoDB in the permission policy area and select <strong>AmazonDynamoDBReadOnlyAcces <\/strong>this policy grants lambda to access the DynamoDB table&#8217;s data, then click Next and enter the Role name as <strong>dynamodb-and-lambda-role<\/strong> finally click <strong>Create role. <\/strong>As a matter of time, a role will be created.<\/span><\/p>\n<h2 id=\"createlambdafunction\">Create Lambda function to handle the API:<\/h2>\n<p><span style=\"color: #000000;\">Type lambda into the AWS search box, then select Lambda from the services menu and navigate to the lambda console. To create a new lambda function, Click <strong>Create function<\/strong>.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12783\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api8.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"234\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Enter Function name as <strong>IoT_API_lambda<\/strong>, select Runtime as <strong>Python 3.9<\/strong>.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12784\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api9.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"363\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">In the Execution role section, select the Use an existing role option, dynamodb-and-lambda-role, and finally click <strong>Create function<\/strong><\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12785\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api10.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"289\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Paste the following code in the lambda_function.py files in the Code Source section. This code will handle the incoming API and will provide the output.<\/span><\/p>\n<pre class=\"theme:dark-terminal nums:false nums-toggle:false lang:default decode:true\"><span style=\"color: #000000;\">import boto3\r\nimport json\r\nimport logging\r\nfrom decimal import Decimal\r\n\r\nclass CustomEncoder(json.JSONEncoder):\r\n    def default(self, obj):\r\n        if isinstance(obj, Decimal):\r\n            return float(obj)\r\n        return json.JSONEncoder.default(self,obj)\r\n\r\nlogger = logging.getLogger()\r\nlogger.setLevel(logging.INFO)\r\n\r\ndynamodbTableName = 'IoT_table'\r\ndynamodb = boto3.resource('dynamodb')\r\ntable = dynamodb.Table(dynamodbTableName)\r\ngetMethod = 'GET'\r\n\r\ndef lambda_handler(event, context):\r\n    logger.info(event)\r\n    httpMethod = event['httpMethod']\r\n    if httpMethod == getMethod:\r\n        response = getProducts()\r\n    else:\r\n        response = buildResponce(404, 'Not Found from the AWS Lambda sir')\r\n    return response\r\n\r\ndef getProducts():\r\n    try:\r\n        response = table.scan()\r\n        result = response['Items']\r\n        return buildResponce(200, result)\r\n\r\n    except:\r\n        logger.exception('Do your Custom error handling here. I am just gonna log it out here!!')\r\n\r\ndef buildResponce(statusCode, body=None):\r\n    responce = {\r\n        'statusCode':statusCode,\r\n        'headers' : {\r\n            'content-Type' : 'application\/json',\r\n            'Access-control-Allow-Origin':'*'\r\n        }\r\n    }\r\n    if body is not None:\r\n        responce['body'] = json.dumps(body, cls=CustomEncoder)\r\n    print(responce)\r\n    return responce<\/span><\/pre>\n<h2 id=\"createapigateway\">Create API Gateway:<\/h2>\n<p><span style=\"color: #000000;\">Go to the AWS API Gateway console by searching API Gateway in the AWS console&#8217;s search box. Click the Create API option to build a new API Gateway.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12787\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api11.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"231\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Select the REST API option and click Build.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12786\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api12.png\" alt=\"AWS API Gateway\" width=\"810\" height=\"417\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Choose REST as the protocol and the New API option in the Create New API section, then enter IoT_api as the API name. Create an API by clicking <strong>create API<\/strong> the button.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12788\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api13.png\" alt=\"AWS API Gateway\" width=\"820\" height=\"427\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">After creating an API, you will need to create a method. To do so, go to Actions and then to the Create Method option on the Actions blade.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12790\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api14.png\" alt=\"AWS API Gateway\" width=\"673\" height=\"323\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">We need the GET method, so choose that and click the true option next.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12791\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api15.png\" alt=\"AWS API Gateway\" width=\"848\" height=\"163\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Select Lambda Function as the integration type and select the Use Lambda Proxy integration option. Enter and pick the previously generated lambda function, then save the modifications.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12792\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api16.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"335\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">To use this API, we must first create a Resource. To do so, go to the Actions blade, click Create Resource, and then input the Resource Name IOT_API_RESOURCE. After checking the CORS box, select the Create Resource option.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api17.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12793\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api17.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"324\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">After building the method and resources, we must deploy them. To do so, go to Actions and select Deploy API from the Actions blade.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api18.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12794\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api18.png\" alt=\"AWS API Gateway\" width=\"794\" height=\"360\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">Select Deployment stage as New Stage. After that, enter the Stage name as IOT_API_stagr, then click the Deploy.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api19.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12795\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api19.png\" alt=\"AWS API Gateway\" width=\"583\" height=\"376\" \/><\/a><\/span><\/p>\n<p><span style=\"color: #000000;\">API is deployed and the URL will be displayed. Make note of the Invoked URL which we will use in the testing section.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api20.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12796\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api20.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"260\" \/><\/a><\/span><\/p>\n<h3 id=\"test\"><span style=\"color: #000000;\">Test:<\/span><\/h3>\n<p><span style=\"color: #000000;\">Select the GET method in the POSTMAN software, paste the previously copied URL into the params section, and click send. We will soon be able to see DynamoDB data in the Body section and the 200 OK status code.<\/span><\/p>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12797\" src=\"https:\/\/d1f7lmxeo98xps.cloudfront.net\/resources\/wp-content\/uploads\/2022\/11\/api21.png\" alt=\"AWS API Gateway\" width=\"938\" height=\"313\" \/><\/a><\/span><\/p>\n<h3 id=\"conclusion\">Conclusion:<\/h3>\n<p><span style=\"color: #000000;\">Amazon API Gateway allows you to create, deploy, manage, audit, and secure APIs. As a result, the API Gateway facilitates the creation of APIs for IoT applications and other web and mobile applications. API gateway helps to create HTTP, RESTful, and WebSocket APIs. These will be used based on the customer application use cases.<\/span><\/p>\n<h3 id=\"aboutcloudthat\">About CloudThat:<\/h3>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/www.cloudthat.com\/\" target=\"_blank\" rel=\"noopener\"><strong>CloudThat\u00a0<\/strong><\/a>is\u00a0the official AWS Advanced Consulting Partner, Microsoft Gold Partner, and Training partner helping people develop knowledge on the cloud and help their businesses aim for higher goals using best in industry cloud computing practices and expertise. We are on a mission to build\u00a0a robust\u00a0cloud computing ecosystem by disseminating\u00a0knowledge on technological intricacies within the cloud space.\u00a0Our blogs, webinars,\u00a0case studies, and white papers\u00a0enable all the stakeholders in the cloud computing sphere.<\/span><\/p>\n<p><span style=\"color: #000000;\">If you have any queries about Amazon MQ setup with Java Application, Amazon Messaging Broker, or any other AWS services, feel free to drop in a comment and we will get back to you quickly.<\/span><\/p>\n<h3 id=\"faqs\">FAQs:<\/h3>\n<ol>\n<li><span style=\"text-decoration: underline; color: #000000;\"><strong>What is the benefit of AWS API Gateway?<\/strong><\/span><\/li>\n<\/ol>\n<p><span style=\"color: #000000;\">Ans: API Gateway is a fully managed service by AWS that allows developers to create, deploy, manage, audit, and secure APIs at any scale.<\/span><\/p>\n<ol start=\"2\">\n<li><span style=\"text-decoration: underline; color: #000000;\"><strong>What kind of APIs are supported by the API Gateway?<\/strong><\/span><\/li>\n<\/ol>\n<p><span style=\"color: #000000;\">Ans: API Gateway supports HTTP, REST, and WebSocket APIs.<\/span><\/p>\n","protected":false},"author":259,"featured_media":12948,"parent":0,"comment_status":"open","ping_status":"open","template":"","blog_category":[3606,3607],"user_email":"vasanthr@cloudthat.com","published_by":"324","primary-authors":"","secondary-authors":"","acf":[],"_links":{"self":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/12767"}],"collection":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/comments?post=12767"}],"version-history":[{"count":1,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/12767\/revisions"}],"predecessor-version":[{"id":41159,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog\/12767\/revisions\/41159"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/media?parent=12767"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.cloudthat.com\/resources\/wp-json\/wp\/v2\/blog_category?post=12767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}