{"id":37547,"date":"2024-11-01T09:58:26","date_gmt":"2024-11-01T09:58:26","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37547"},"modified":"2024-11-01T11:02:17","modified_gmt":"2024-11-01T11:02:17","slug":"uwp-development-modifying-userlistpage-view","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37547\/","title":{"rendered":"UWP Development, Modifying UserListPage View"},"content":{"rendered":"<p>Hello! In this post, we will take a detailed look at Universal Windows Platform (UWP) development. In particular, I will explain how to modify the view of the UserListPage. UWP is a platform that supports app development for a variety of Windows 10 devices and consists of various user interface (UI) elements. In this lesson, we will learn how to display a list of users using XAML and C# and improve the interaction with the view.<\/p>\n<h2>1. Introduction to UWP<\/h2>\n<p>UWP is a platform created by Microsoft that supports the development of apps that run on various Windows devices, including desktops, tablets, Xbox, and IoT devices. UWP apps are composed of a UI that uses XAML and backend logic that uses C# or C++. This structure allows developers to create applications optimized for a wide range of screen sizes and resolutions.<\/p>\n<h3>1.1 Features of UWP<\/h3>\n<ul>\n<li><strong>Responsive Design:<\/strong> UWP provides the ability to automatically support various screen sizes and resolutions.<\/li>\n<li><strong>Security:<\/strong> It runs in a sandboxed environment, ensuring the safe protection of user data.<\/li>\n<li><strong>Zero Page (App Bar):<\/strong> It supports easy access for users through essential elements in the UI.<\/li>\n<\/ul>\n<h2>2. Overview of UserListPage<\/h2>\n<p>The UserListPage is an important component of a UWP application that displays a list of users. It usually shows the user&#8217;s profile picture, name, status, etc., and interactions with users are often important.<\/p>\n<h3>2.1 Basic ViewModel Setup<\/h3>\n<p>The data needed to build the user list is passed through the ViewModel. UserViewModel represents the data of each user and contains specific properties.<\/p>\n<pre><code class=\"language-csharp\">\npublic class UserViewModel\n{\n    public string UserName { get; set; }\n    public string UserStatus { get; set; }\n    public string UserImage { get; set; }\n\n    public UserViewModel(string userName, string userStatus, string userImage)\n    {\n        UserName = userName;\n        UserStatus = userStatus;\n        UserImage = userImage;\n    }\n}\n<\/code><\/pre>\n<h2>3. Modifying the UserListPage View<\/h2>\n<p>By modifying the view of the UserListPage, we can provide a more useful and intuitive user experience. Here, we will use GridView to dynamically display the list of users and add click events to each user item to show additional information.<\/p>\n<h3>3.1 Setting Up XAML Structure<\/h3>\n<p>We will use GridView in XAML to display the list of users. We can define the display format and style for each user item.<\/p>\n<pre><code class=\"language-xml\">\n<page mc:ignorable=\"d\" x:class=\"UserApp.Views.UserListPage\" xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\" xmlns:d=\"http:\/\/schemas.microsoft.com\/expression\/blend\/2008\" xmlns:local=\"using:UserApp.ViewModels\" xmlns:mc=\"http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006\" xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\">\n\n    <grid background=\"{ThemeResource ApplicationPageBackgroundThemeBrush}\">\n        <gridview itemclick=\"UserGridView_ItemClick\" x:name=\"UserGridView\">\n            <gridview.itemtemplate>\n                <datatemplate>\n                    <stackpanel orientation=\"Horizontal\">\n                        <image height=\"50\" margin=\"5\" source=\"{Binding UserImage}\" width=\"50\"\/>\n                        <textblock fontweight=\"Bold\" margin=\"5\" text=\"{Binding UserName}\" verticalalignment=\"Center\"><\/textblock>\n                        <textblock margin=\"5\" text=\"{Binding UserStatus}\" verticalalignment=\"Center\"><\/textblock>\n                    <\/stackpanel>\n                <\/datatemplate>\n            <\/gridview.itemtemplate>\n        <\/gridview>\n    <\/grid>\n<\/page>\n<\/code><\/pre>\n<h3>3.2 Adding Backend Logic<\/h3>\n<p>Now, let&#8217;s implement the backend logic for the UserListPage and connect the ViewModel that manages the user list. We will write a LoadUsers method to load the initial user list.<\/p>\n<pre><code class=\"language-csharp\">\n\/\/ UserListPage.xaml.cs\npublic sealed partial class UserListPage : Page\n{\n    public ObservableCollection<UserViewModel> Users { get; set; }\n\n    public UserListPage()\n    {\n        this.InitializeComponent();\n        Users = new ObservableCollection<UserViewModel>();\n        LoadUsers();\n        UserGridView.ItemsSource = Users;\n    }\n\n    private void LoadUsers()\n    {\n        Users.Add(new UserViewModel(\"Alice\", \"Online\", \"Assets\/alice.png\"));\n        Users.Add(new UserViewModel(\"Bob\", \"Offline\", \"Assets\/bob.png\"));\n        Users.Add(new UserViewModel(\"Charlie\", \"Away\", \"Assets\/charlie.png\"));\n        \/\/ Add other users\n    }\n\n    private void UserGridView_ItemClick(object sender, ItemClickEventArgs e)\n    {\n        UserViewModel user = e.ClickedItem as UserViewModel;\n        Frame.Navigate(typeof(UserDetailPage), user);\n    }\n}\n<\/UserViewModel><\/UserViewModel><\/code><\/pre>\n<h2>4. Improving User Interface<\/h2>\n<p>To enhance the UI, we can add various visual elements. For example, we can change the color based on the user&#8217;s status or add animations to UI elements to enhance responsiveness and visual appeal.<\/p>\n<h3>4.1 Displaying Colors Based on Status<\/h3>\n<p>We will add logic to change the background color based on the user&#8217;s status. For example, we can set Green for online users, Red for offline users, and Yellow for away users.<\/p>\n<pre><code class=\"language-csharp\">\nprivate void LoadUsers()\n{\n    Users.Add(new UserViewModel(\"Alice\", \"Online\", \"Assets\/alice.png\"));\n    Users.Add(new UserViewModel(\"Bob\", \"Offline\", \"Assets\/bob.png\"));\n    Users.Add(new UserViewModel(\"Charlie\", \"Away\", \"Assets\/charlie.png\"));\n}\n\nprivate SolidColorBrush GetStatusColor(string userStatus)\n{\n    switch (userStatus)\n    {\n        case \"Online\":\n            return new SolidColorBrush(Colors.Green);\n        case \"Offline\":\n            return new SolidColorBrush(Colors.Red);\n        case \"Away\":\n            return new SolidColorBrush(Colors.Yellow);\n        default:\n            return new SolidColorBrush(Colors.Gray);\n    }\n}\n<\/code><\/pre>\n<h3>4.2 Applying Status Colors in XAML<\/h3>\n<p>In XAML, we can use a Converter to represent status colors in the DataTemplate. This part can directly be implemented in XAML, so let&#8217;s check the modification points in the code.<\/p>\n<pre><code class=\"language-xml\">\n<datatemplate>\n    <stackpanel orientation=\"Horizontal\">\n        <image height=\"50\" margin=\"5\" source=\"{Binding UserImage}\" width=\"50\"\/>\n        <textblock fontweight=\"Bold\" margin=\"5\" text=\"{Binding UserName}\" verticalalignment=\"Center\"><\/textblock>\n        <textblock background=\"{Binding UserStatus, Converter={StaticResource StatusToColorConverter}}\" margin=\"5\" text=\"{Binding UserStatus}\" verticalalignment=\"Center\"><\/textblock>\n    <\/stackpanel>\n<\/datatemplate>\n<\/code><\/pre>\n<h2>5. Testing and Debugging<\/h2>\n<p>After development is complete, it is essential to perform testing and debugging. In addition to verifying the click event on the user list and the correct display of the list, you must check responsiveness on various screen sizes.<\/p>\n<h3>5.1 Writing Unit Tests<\/h3>\n<p>It is advisable to write unit tests to ensure that the user list functionality remains intact when code changes. This allows testing of the loading and responsiveness of the user list.<\/p>\n<pre><code class=\"language-csharp\">\n[TestMethod]\npublic void TestLoadUsers()\n{\n    var page = new UserListPage();\n    page.LoadUsers();\n    \n    Assert.AreEqual(3, page.Users.Count);\n    Assert.AreEqual(\"Alice\", page.Users[0].UserName);\n}\n<\/code><\/pre>\n<h3>5.2 Exception Handling<\/h3>\n<p>Handling potential exceptions in the code will enhance the user experience. For example, we need to implement a way to display an exception message to the user if failing to load user information due to network issues.<\/p>\n<pre><code class=\"language-csharp\">\ntry\n{\n    LoadUsers();\n}\ncatch (Exception ex)\n{\n    \/\/ Log the exception or notify the user.\n}\n<\/code><\/pre>\n<h2>6. Conclusion<\/h2>\n<p>In this post, we learned how to modify the view of UserListPage in UWP. By leveraging XAML and C#, we were able to create a dynamic user list and improve the UI and interactions, enhancing the user experience.<\/p>\n<p>The UWP platform is attractive due to its easy-to-use APIs and various features, holding many possibilities for the future. Keep learning and experimenting to implement your desired features. Welcome to the world of UWP development!<\/p>\n<h2>7. Additional Resources<\/h2>\n<p>If you would like additional resources on this topic, please refer to the links below:<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/apps\/\">Microsoft Docs<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/apps\/design\/\">UWP Design Guide<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Microsoft\/Windows-universal-samples\">UWP Sample Code<\/a><\/li>\n<\/ul>\n<h2>8. Questions and Discussions<\/h2>\n<p>If you have any questions or comments about the blog post, please leave them in the comments. If you need further assistance or more in-depth information, feel free to contact us anytime. Thank you!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this post, we will take a detailed look at Universal Windows Platform (UWP) development. In particular, I will explain how to modify the view of the UserListPage. UWP is a platform that supports app development for a variety of Windows 10 devices and consists of various user interface (UI) elements. In this lesson, &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37547\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;UWP Development, Modifying UserListPage View&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[115],"tags":[],"class_list":["post-37547","post","type-post","status-publish","format-standard","hentry","category-uwp-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>UWP Development, Modifying UserListPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/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:\/\/atmokpo.com\/w\/37547\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UWP Development, Modifying UserListPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this post, we will take a detailed look at Universal Windows Platform (UWP) development. In particular, I will explain how to modify the view of the UserListPage. UWP is a platform that supports app development for a variety of Windows 10 devices and consists of various user interface (UI) elements. In this lesson, &hellip; \ub354 \ubcf4\uae30 &quot;UWP Development, Modifying UserListPage View&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37547\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:58:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:02:17+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37547\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37547\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"UWP Development, Modifying UserListPage View\",\"datePublished\":\"2024-11-01T09:58:26+00:00\",\"dateModified\":\"2024-11-01T11:02:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37547\/\"},\"wordCount\":725,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"UWP Programming\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37547\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37547\/\",\"name\":\"UWP Development, Modifying UserListPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:58:26+00:00\",\"dateModified\":\"2024-11-01T11:02:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37547\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37547\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37547\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UWP Development, Modifying UserListPage View\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UWP Development, Modifying UserListPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/37547\/","og_locale":"ko_KR","og_type":"article","og_title":"UWP Development, Modifying UserListPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this post, we will take a detailed look at Universal Windows Platform (UWP) development. In particular, I will explain how to modify the view of the UserListPage. UWP is a platform that supports app development for a variety of Windows 10 devices and consists of various user interface (UI) elements. In this lesson, &hellip; \ub354 \ubcf4\uae30 \"UWP Development, Modifying UserListPage View\"","og_url":"https:\/\/atmokpo.com\/w\/37547\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:58:26+00:00","article_modified_time":"2024-11-01T11:02:17+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37547\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37547\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"UWP Development, Modifying UserListPage View","datePublished":"2024-11-01T09:58:26+00:00","dateModified":"2024-11-01T11:02:17+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37547\/"},"wordCount":725,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["UWP Programming"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37547\/","url":"https:\/\/atmokpo.com\/w\/37547\/","name":"UWP Development, Modifying UserListPage View - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:58:26+00:00","dateModified":"2024-11-01T11:02:17+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37547\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37547\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37547\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"UWP Development, Modifying UserListPage View"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37547"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37547\/revisions"}],"predecessor-version":[{"id":37548,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37547\/revisions\/37548"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}