{"id":5476,"date":"2024-12-31T15:33:06","date_gmt":"2024-12-31T15:33:06","guid":{"rendered":"https:\/\/obsidiansofteducation.com\/?page_id=5476"},"modified":"2024-12-31T15:33:06","modified_gmt":"2024-12-31T15:33:06","slug":"weather-app-in-mit-app-inventor","status":"publish","type":"page","link":"https:\/\/obsidiansofteducation.com\/index.php\/weather-app-in-mit-app-inventor\/","title":{"rendered":"Weather App in MIT App Inventor"},"content":{"rendered":"\n<p>Hello friends,<\/p>\n\n\n\n<p>Welcome to Obsidian Soft. Let\u2019s make a weather app in MIT App Inventor today.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/snake20game2024.png\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>Unlike other tutorials you might find online, we will not use an extension. I try to avoid extensions as much as possible as extensions don\u2019t work on iPhones.<br>We will use an API i.e. application programming interface and use the API by WeatherAPI.com.<br><a href=\"https:\/\/www.weatherapi.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.weatherapi.com\/<\/a><br>You will need to make an account to get an API key. Remember we did the same thing while making our ChatGPT apps i.e. we made an openAI account to get an API key. The process is quite similar so make an account by pressing on Signup button.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.20.0820PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>You will need to provide a valid email address along with a password.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.27.0720PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>You will also need to verify your provided email address by clicking on the link sent to your email.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.24.4020PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>After verifying your email, just log in.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.33.4420PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhMkpk4RQRdIgMl6e0S70ZPdMmjowlnIdgarHD3N3uzMWxFqR16rPUm2ZXI9E-zk67loZvqZHGm44g_7YND5rTypIkwpJD6_CktKHSHhEIsHTDuCo0yMhbOxL4omWneH-ws0XWHAvRKl-mDvtNmYiAKzC9aC4N4ijdOjGEnkP_w4qAPfpPVGYh9ZFeedEk\/s2854\/Screenshot%202023-10-17%20at%206.33.44%20PM.png\" target=\"_blank\" rel=\"noopener\"><\/a><\/p>\n\n\n\n<p>You will be taken to your account\u2019s dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.31.0020PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhYNqF1DxuU_CGKJJXki9E-x_fi4d-IWnmFETbE5FioRE7R5htmI7gua70B5VVh7SoOaUQr3K7Tmy7nlZgeS9I9W5aGy8oWcdnRKI9gVxQ_j8MYHywvoemUPOWfGqoeXMjRM7upSr1gaPRIeFGfySUnImmIqM0DaZ5K8Aqzu_RQPWfBhnoj1vP_aF959EQ\/s2852\/Screenshot%202023-10-17%20at%206.31.00%20PM.png\" target=\"_blank\" rel=\"noopener\"><\/a><\/p>\n\n\n\n<p>Copy the API key and go to API Explorer as we want to see how the API responds to requests from apps.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.37.0820PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Paste your API key in the provided field.&nbsp;As you can see, we can provide a city name along with API key and it will return the response in JSON form (Javascript Object Notation).&nbsp;APIs usually return responses in this notation and the apps have to interpret this JSON. Thankfully the JSON returned by WeatherAPI.com is fairly simple and we can have a look at a sample of it by&nbsp;pressing the Show Response button.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.39.2620PM.png\" alt=\"\" style=\"width:507px;height:auto\"\/><\/figure>\n\n\n\n<p>The following is the call sent to the WeatherAPI server when we press the Show Response button.<br><a href=\"https:\/\/api.weatherapi.com\/v1\/current.json?key=3575453b7f43409485540621231610&amp;q=London&amp;aqi=no\" target=\"_blank\" rel=\"noopener\">https:\/\/api.weatherapi.com\/v1\/current.json?key=3575453b7f43409485540610&amp;q=London&amp;aqi=no<\/a><\/p>\n\n\n\n<p>Scroll down until you see the response body.<br><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/gEKrvcvGwP0X5XBxcy67tK8XaM0Jcor8dsGLQXzlT4ivogpAWRbWzZ2z1lRVv_iVlMAYHifx9c_nLXYBrWHwFrtSvexbv0kcNTaVkVWtStOi9QzzuE_-Cel5s_xyvFxiQl_25KziyHjtNWGqOTrFQl0.png\"><\/p>\n\n\n\n<p>As you can see it is returning dictionaries. We are interested in the dictionary that we will get if we provide the key=\u201d current\u201d. We will use this dictionary to get the temperature by giving temp_c or temp_f as the key. I will use temp_c i.e. temperature in Celsius in this tutorial.<\/p>\n\n\n\n<p>To get the weather description along with its icon, we will get the dictionary for the key \u201ccondition\u201d inside our \u201ccurrent\u201d dictionary and use the keys \u201ctext\u201d and \u201cicon\u201d respectively to get the values. Don\u2019t be confused as I will show the exact blocks too. Go to docs and click on error codes on the left-hand side.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.50.5520PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgftlNsyLXvajvG_da9qUxKYPYNlDcx39ZZfHP3CBzTEr7o6JgEKcArsojHgzLSqnQSqtz2XiKgwt2E45_hZALxc0WW8MPMh4if8ViR7q3vAAyC5Dunu143sXBZ4abJsR37EgSI7HgPZVvyFBimmP5QpKJJgugeLNEMpyj7oc88nHufhKtEMsrC7CX8khw\/s2842\/Screenshot%202023-10-17%20at%206.50.55%20PM.png\" target=\"_blank\" rel=\"noopener\"><\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.52.1620PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg1htwLEPaVe0_pGjX9tmRto0sYnf7-sT8eaaCwm3oCnItQVKCphe3fyBcniFlWcNz5fdOT2buK8TMTg73Siq6GlyWekfsEhzyyc21E68qIbdvLHGfZZ4MNrWPUnn9E2SqVCmIglOK1ZE9vimMv1QLKZZiyd4yJgfVgXLz4FElAo59KnHQkn7nL7Me8L2g\/s2862\/Screenshot%202023-10-17%20at%206.52.16%20PM.png\" target=\"_blank\" rel=\"noopener\"><\/a><\/p>\n\n\n\n<p>This shows that our response code is &gt;=400 in case of error.<\/p>\n\n\n\n<p>Now, let\u2019s go to MIT App Inventor.&nbsp;Create a new project and call it WeatherApp.&nbsp;For screen1, make the background color dull blue, align horizontal and align vertical both center.<\/p>\n\n\n\n<p>Add a&nbsp;<strong>horizontal arrangement<\/strong>&nbsp;from&nbsp;<strong>Layout<\/strong>. Make align horizontal and align vertical both center. Make height 20%<\/p>\n\n\n\n<p>From the&nbsp;<strong>user interface<\/strong>, drag and drop a&nbsp;<strong>label<\/strong>&nbsp;inside this horizontal arrangement. Rename to cityLbl. Make font bold, font size 20, and text color: white.<\/p>\n\n\n\n<p>From the&nbsp;<strong>user interface<\/strong>, drag and drop a&nbsp;<strong>textbox<\/strong>&nbsp;inside this horizontal arrangement after the label. Rename to cityTxt. Make font bold, font size 20, and change the hint to \u201cEnter city name\u201d<\/p>\n\n\n\n<p>From the&nbsp;<strong>user interface<\/strong>, drag and drop a&nbsp;<strong>button<\/strong>&nbsp;inside this horizontal arrangement and put it on the right of cityTxt. Rename to submitBtn. Make the background color white, font bold, font size 20, and shape rounded.<\/p>\n\n\n\n<p>From the&nbsp;<strong>user interface<\/strong>, drag and drop an&nbsp;<strong>image<\/strong>&nbsp;below this horizontal arrangement. Rename to weatherIcon.<\/p>\n\n\n\n<p>From the&nbsp;<strong>user interface<\/strong>, drag and drop a&nbsp;<strong>label<\/strong>&nbsp;below this image. Rename to descLbl. Make font bold, font size 20 and text color: white.<\/p>\n\n\n\n<p>From the&nbsp;<strong>user interface<\/strong>, drag and drop a&nbsp;<strong>label<\/strong>&nbsp;below this descLbl. Rename to tempLbl. Make font bold, font size 50 and text color: yellow.<\/p>\n\n\n\n<p>Last but not least, from the&nbsp;<strong>Connectivity<\/strong>&nbsp;palette, drag and drop a&nbsp;<strong>web<\/strong>&nbsp;component onto the viewer. This is an invisible component that will be used to communicate with the WeatherAPI servers. Our final screen will look like this along with the components:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.58.1620PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/Screenshot202023-10-1720at206.58.5420PM.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Let\u2019s go to the blocks section.<\/p>\n\n\n\n<p>Make a global variable for our API key and response returned by servers. Don\u2019t use this API key. You need to get your own key and process has been explained above.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/2bRPWibX26eaGMhotN_prc3FhX162ZI6Nk9odNKwUQF6WUXJ0eeWIK0ASvX95wT6nY83LHNizJpmqOdo9W6A1QqzCz5Le-Bg6PSsOWebxwvVlPSSBGtJbpjSqmyWvKax2PR5CCitSy_B2N025yF7_dMw400-h38.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/VJ1gs6rfKCwUMUVwBKyMdaG4oDf5jVaoHjmcO4DVFGX6tCM4xqMrxRMoOo8_bvht6YKaxvgG_PG-xFLXWERr93ZIYuE0RSGXQ8NnEawUkzT3tbMm3b6sP7q4M4iuBk-2buL0_UNviI9yTR8I5xwdvfkw640-h43.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Next, we get the onClick event for the submitBtn and set up the URL for sending a request to WeatherAPI.com, and then give a call to get a response from their servers.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/OuDy7vjhyNJ7H4Y6xrXZR1-GSHXIMhkOzrGKYMYq3VA3qVj9klo4GhPKfbVNM7dCT8f8aoSwyGV6pmbCjkUB5LZMwgr6eQaiWf62T9wLwZgAcG3IAcVajI0Bs6dmwdG9RTkvVWnMoZ95FKfu61sYBpow640-h185.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>The Web1.Get results in a Web1.GotText event once we receive a response from the server<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/rfNh6UT7HV92EVUVHhUZ3tA4qGdBiKDpI_GDtxEXUSsh0r8SULgNvzT3uMOFdFOmqk-0TgHi2sKPNQj1UYOpB7GpxeU0H1BlHHoA_ybw8jiWnGeiiZLwKG-nk1OzB1x6i2rD9k5-sngHOZaAzcvqsOsw640-h124.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Next, drag and drop an if\/else block from Control inside this event and check whether reponseCode is &gt;=400 (remember that this means an error)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/HjsgKWCOxE9Atb4kxPeeqF2OeTppMoiDyOatHX2jNpPHp1pA8SaP8fss_QV3qkn5w6b0OKRVP_qIyyNjKXXCAR-tlzNwI_Eb0KP9DcE5aty_3VljLc_2Y-F6HjdWys0IXVgk1ZjIniqKVZ2qABiPEw640-h249.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>In case of error, we will not decode the response but make our result empty with a data not found message for the user.&nbsp;<img loading=\"lazy\" decoding=\"async\" height=\"292\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/UZLnlXjMKm75qIVW4HQ4s83XENfTlXwdo12wyaGZnoeaEBiFcg9M8_4vpxqMZMH7xeEtPSoS3xRBt5KskFg2zsmD1yp_ylhlnvWVlphd499KOMGd4v7bila5JRIoNSDJxjzrUwv_whEIYKmNahqe2YAw640-h292.png\" width=\"640\"><\/p>\n\n\n\n<p>In the else condition, we will first decode the response using a special JSON decode procedure of the Web component and put it inside our global variable response.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/54IE027gbvl9CachMfN3-P7TnMnI7L_5lJTYGvRNxKZvdXW-UjBmB3Svg4KIBC792yTWWfntlS_qPwyeWIoo4UQ35sFAMH75Z9WdrZCcBcqKd0WUZEbn7GCfy1aj-wsMlpSGPnTYjQ2SNxuv8MvptlMw640-h204.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Now, we have dictionaries inside our response variable.<\/p>\n\n\n\n<p>First, let\u2019s get the temperature and put it inside our tempLbl.<\/p>\n\n\n\n<p>We will need to do a join with the symbol of Celsius before putting it inside userLbl.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/NuuuOGQda76KAbkF3tC5uX2WpyhOJQGm8eB2M1K199yq_cUut0Tnjfdh4OzlKLMbuIZij4rgXkfz4URMp8rGGhnRQpDe7K0Haa_C8gQ7qFjn5vmKkh80hrjoFgOxwZ1LTsW5Lf3lfIpSZi9JHDr5ejYw640-h320.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Next, set the descLbl to the value for key:\u201dtext\u201d in the \u201ccondition\u201d dictionary that is inside the \u201ccurrent\u201d dictionary.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/FqA5wcfXYqDztcT14vuoXJSQJ4203V5OKxK2TgyO1xLGtBcF2SLH8Ua5i_faCWGaydt-11cQ5j1_wLw4soJic4a8azmx9kCGSHZ87cpS2urFf08QKkzDc3Ti6ypqwwFRzt4BjOELbMlwwMeYTb-Slcw640-h432.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Do the same thing for the weatherIcon but instead of key: \u201ctext\u201d, use key: \u201cicon\u201d and before setting the value to weatherIcon, use a join with text string http: to construct a valid web address to get the image from Weather API servers.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/eVajxb8OvrgvETsltJbtNKhXt_BC945RzOYhB3EbFyAwRwo9R1doGfaxSbj1DBnPVp3ePrKOaunD4SeInDMpbaJb_LomivvzE3lHzjuEF9_QFNbQSntdBfcTG6l6CphPqzLZZTwtrimzFX97PbjELmcw640-h511.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>This is done and our basic weather app with a nice clean and attractive user interface is ready.<\/p>\n\n\n\n<p>I hope you have as much fun making this app as I had while designing and making it for you.<\/p>\n\n\n\n<p>Again, you don\u2019t need any extension for this weather app. Just make a free account on WeatherAPI.com and you are good to go. If you like my work, please share it with friends and family and if you haven\u2019t subscribed to my channel yet, kindly do so so that you don\u2019t miss any of the great projects that I have planned for you.<\/p>\n\n\n\n<p>In the end, I would like to thank the amazing people at WeatherAPI.com for making such a user-friendly API.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.weatherapi.com\" target=\"_blank\" rel=\"noopener\">https:\/\/www.weatherapi.com<\/a><\/p>\n\n\n\n<p>Thank you for reading this tutorial. <\/p>\n\n\n\n<p>If you like my tutorials, consider supporting me:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/obsidiansoft.gumroad.com\/l\/cxdft\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"196\" src=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/donate-button-1.png\" alt=\"\" class=\"wp-image-5381\" style=\"width:261px;height:auto\" srcset=\"https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/donate-button-1.png 372w, https:\/\/obsidiansofteducation.com\/wp-content\/uploads\/2024\/12\/donate-button-1-300x158.png 300w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>You can also have a look at the video here:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<p class=\"responsive-video-wrap clr\"><iframe loading=\"lazy\" title=\"MIT App Inventor Weather App | No Extension | Weather API #appinventor #mitappinventor #appinventor2\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/zQoXPhAr1bA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<\/div><\/figure>\n\n\n\n<p>Please like my videos and share them with your friends and family. Also, subscribe to my channel and press the bell icon so you don\u2019t miss any of the great projects I have planned for you.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.youtube.com\/c\/obsidiansofteducation\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/c\/obsidiansofteducation<\/a><\/p>\n\n\n\n<p>Please like my social media pages for more educational resources and tips.<\/p>\n\n\n\n<p>Facebook:<a href=\"https:\/\/www.blogger.com\/blog\/page\/edit\/4947000819484484884\/7140650632339107612#\" target=\"_blank\" rel=\"noopener\">&nbsp;https:\/\/www.facebook.com\/ObsidianSoft\/<\/a><\/p>\n\n\n\n<p>Instagram:<a href=\"https:\/\/www.blogger.com\/blog\/page\/edit\/4947000819484484884\/7140650632339107612#\" target=\"_blank\" rel=\"noopener\">&nbsp;https:\/\/www.instagram.com\/obsidiansoftapps\/<\/a><\/p>\n\n\n\n<p>Pinterest:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.pinterest.co.uk\/obsidiansoft\/_created\" target=\"_blank\" rel=\"noopener\">https:\/\/www.pinterest.co.uk\/obsidiansoft\/_created<\/a><\/p>\n\n\n\n<p>For links to free educational apps, have a look at the\u00a0<a href=\"https:\/\/obsidiansofteducation.com\/index.php\/mobile-apps\/\">educational apps page<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello friends, Welcome to Obsidian Soft. Let\u2019s make a weather app in MIT App Inventor today. Unlike other tutorials you might find online, we will not use an extension. I try to avoid extensions as much as possible as extensions don\u2019t work on iPhones.We will use an API i.e. application programming interface and use the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5476","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/pages\/5476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/comments?post=5476"}],"version-history":[{"count":1,"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/pages\/5476\/revisions"}],"predecessor-version":[{"id":5478,"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/pages\/5476\/revisions\/5478"}],"wp:attachment":[{"href":"https:\/\/obsidiansofteducation.com\/index.php\/wp-json\/wp\/v2\/media?parent=5476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}