{"id":37791,"date":"2024-11-01T10:00:27","date_gmt":"2024-11-01T10:00:27","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37791"},"modified":"2024-11-01T11:03:43","modified_gmt":"2024-11-01T11:03:43","slug":"wpf-course-creating-a-crud-application-using-entity-framework-and-wpf","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37791\/","title":{"rendered":"WPF Course, Creating a CRUD Application using Entity Framework and WPF"},"content":{"rendered":"<p>\n    Windows Presentation Foundation (WPF) is a UI framework provided by Microsoft that is used for developing desktop applications. WPF offers powerful tools for composing user interfaces (UI) and facilitates integration with various data bindings and relational data stores. This course provides a detailed explanation of how to implement CRUD (Create, Read, Update, Delete) operations in WPF applications using Entity Framework.\n<\/p>\n<h2>1. Introduction to WPF and Entity Framework<\/h2>\n<p>\n    WPF provides the ability to design UIs using XAML (Extensible Application Markup Language). With features like data binding, styling, and animation, it&#8217;s easy to create complex user interfaces. On the other hand, Entity Framework is an ORM (Object-Relational Mapping) framework that allows mapping relational database data to objects, making data manipulation easy. By combining WPF and Entity Framework, it&#8217;s straightforward to develop data-centric applications.\n<\/p>\n<h2>2. Setting Up the Development Environment<\/h2>\n<p>\n    In this course, we will use Visual Studio 2022 to develop the WPF application. Additionally, we will interact with the database using Entity Framework Core. Below are the steps to set up the development environment.\n<\/p>\n<ul>\n<li>Download and install Visual Studio 2022.<\/li>\n<li>Create a new project and select the WPF App (.NET Core) template.<\/li>\n<li>Install the NuGet packages required for development. Here, we will install Entity Framework Core and the corresponding database provider (e.g., Microsoft.EntityFrameworkCore.SqlServer).<\/li>\n<li>Set the database connection string in the app settings file of the project (appsettings.json).<\/li>\n<\/ul>\n<h2>3. Defining the Data Model<\/h2>\n<p>\n    The most important part of a CRUD application is the data model. With Entity Framework, C# classes can be used as data models. Below is how to define a &#8220;Product&#8221; model to be used as an example.\n<\/p>\n<pre>\n<code class=\"language-csharp\">\npublic class Product\n{\n    public int Id { get; set; }\n    public string Name { get; set; }\n    public decimal Price { get; set; }\n}\n<\/code>\n<\/pre>\n<p>\n    The above Product class represents the product&#8217;s ID, name, and price. Now, we will create a DbContext class to sync this model with the database.\n<\/p>\n<pre>\n<code class=\"language-csharp\">\nusing Microsoft.EntityFrameworkCore;\n\npublic class AppDbContext : DbContext\n{\n    public DbSet<Product> Products { get; set; }\n\n    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\n    {\n        optionsBuilder.UseSqlServer(\"YourConnectionStringHere\");\n    }\n}\n<\/code>\n<\/pre>\n<h2>4. Migration and Database Creation<\/h2>\n<p>\n    After defining the data model, it\u2019s necessary to create and update the database. This is done through the migration feature of Entity Framework. Run the following commands in the terminal or Package Manager Console to create the initial migration.\n<\/p>\n<pre>\n<code>Add-Migration InitialCreate<\/code>\n<code>Update-Database<\/code>\n<\/pre>\n<p>\n    By executing the above commands in order, the database will be created, and a table for the defined Product model will be generated.\n<\/p>\n<h2>5. Building the WPF UI<\/h2>\n<p>\n    Now, let\u2019s build the actual WPF user interface. In the XAML file, we will add buttons for data operations and a DataGrid for displaying data.\n<\/p>\n<pre>\n<code class=\"language-xml\">\n<Window Height=\"350\" Title=\"CRUD Application\" Width=\"525\" x:Class=\"WpfApp.MainWindow\" xmlns=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation\" xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\">\n    <Grid>\n        <DataGrid AutoGenerateColumns=\"False\" ItemsSource=\"{Binding Products}\" x:Name=\"ProductsDataGrid\">\n            <DataGrid.Columns>\n                <DataGridTextColumn Binding=\"{Binding Id}\" Header=\"ID\"><\/DataGridTextColumn>\n                <DataGridTextColumn Binding=\"{Binding Name}\" Header=\"Name\"><\/DataGridTextColumn>\n                <DataGridTextColumn Binding=\"{Binding Price}\" Header=\"Price\"><\/DataGridTextColumn>\n            <\/DataGrid.Columns>\n        <\/DataGrid>\n        <Button Click=\"AddButton_Click\" Content=\"Add\"><\/Button>\n        <Button Click=\"EditButton_Click\" Content=\"Edit\"><\/Button>\n        <Button Click=\"DeleteButton_Click\" Content=\"Delete\"><\/Button>\n    <\/Grid>\n<\/Window>\n<\/code>\n<\/pre>\n<h2>6. ViewModel and Data Binding<\/h2>\n<p>\n    The MVVM (Model-View-ViewModel) pattern is widely used in WPF applications. By using the ViewModel, data can be bound between the model and the view. Below is how to define the ViewModel.\n<\/p>\n<pre>\n<code class=\"language-csharp\">\nusing System.Collections.ObjectModel;\n\npublic class ProductViewModel\n{\n    public ObservableCollection<Product> Products { get; set; }\n\n    public ProductViewModel()\n    {\n        using (var context = new AppDbContext())\n        {\n            Products = new ObservableCollection<Product>(context.Products.ToList());\n        }\n    }\n\n    public void AddProduct(Product product)\n    {\n        using (var context = new AppDbContext())\n        {\n            context.Products.Add(product);\n            context.SaveChanges();\n        }\n    }\n\n    public void EditProduct(Product product)\n    {\n        using (var context = new AppDbContext())\n        {\n            context.Products.Update(product);\n            context.SaveChanges();\n        }\n    }\n\n    public void DeleteProduct(int productId)\n    {\n        using (var context = new AppDbContext())\n        {\n            var product = context.Products.Find(productId);\n            if (product != null)\n            {\n                context.Products.Remove(product);\n                context.SaveChanges();\n            }\n        }\n    }\n}\n<\/code>\n<\/pre>\n<h2>7. Implementing CRUD Operations<\/h2>\n<p>\n    Now we are ready to connect the UI to the ViewModel and implement CRUD operations. The CRUD methods will be called in the button click events. Below is how to implement the button click events.\n<\/p>\n<pre>\n<code class=\"language-csharp\">\nprivate ProductViewModel viewModel;\n\npublic MainWindow()\n{\n    InitializeComponent();\n    viewModel = new ProductViewModel();\n    DataContext = viewModel;\n}\n\nprivate void AddButton_Click(object sender, RoutedEventArgs e)\n{\n    var newProduct = new Product\n    {\n        Name = \"New Product\",\n        Price = 9.99m\n    };\n    viewModel.AddProduct(newProduct);\n}\n\nprivate void EditButton_Click(object sender, RoutedEventArgs e)\n{\n    \/\/ Edit logic\n}\n\nprivate void DeleteButton_Click(object sender, RoutedEventArgs e)\n{\n    \/\/ Delete logic\n}\n<\/code>\n<\/pre>\n<h2>8. Optimization and Conclusion<\/h2>\n<p>\n    After completing the CRUD application, you may consider additional tasks such as error handling and validation to optimize the code and enhance reliability. Creating a new DbContext instance every time you access the database may affect performance, so it may be worth considering dependency injection through IoC (Inversion of Control).\n<\/p>\n<p>\n    We have looked at the process of creating a CRUD application using WPF and Entity Framework. The content described in this course is just a simple example, and actual applications may require more advanced features and architecture considerations.\n<\/p>\n<h2>9. Conclusion<\/h2>\n<p>\n    The technologies using WPF and Entity Framework are powerful and provide a highly useful combination for creating applications that handle various data. It is hoped that this course has helped you understand the fundamental structure of a CRUD application and learn how to practically utilize WPF and Entity Framework.\n<\/p>\n<p>\n    Moving forward, there are many applications possible to enhance user experience by processing complex business logic or constructing diverse user interfaces.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Windows Presentation Foundation (WPF) is a UI framework provided by Microsoft that is used for developing desktop applications. WPF offers powerful tools for composing user interfaces (UI) and facilitates integration with various data bindings and relational data stores. This course provides a detailed explanation of how to implement CRUD (Create, Read, Update, Delete) operations in &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37791\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;WPF Course, Creating a CRUD Application using Entity Framework and WPF&#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":[117],"tags":[],"class_list":["post-37791","post","type-post","status-publish","format-standard","hentry","category-wpf-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WPF Course, Creating a CRUD Application using Entity Framework and WPF - \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\/37791\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF Course, Creating a CRUD Application using Entity Framework and WPF - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Windows Presentation Foundation (WPF) is a UI framework provided by Microsoft that is used for developing desktop applications. WPF offers powerful tools for composing user interfaces (UI) and facilitates integration with various data bindings and relational data stores. This course provides a detailed explanation of how to implement CRUD (Create, Read, Update, Delete) operations in &hellip; \ub354 \ubcf4\uae30 &quot;WPF Course, Creating a CRUD Application using Entity Framework and WPF&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37791\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T10:00:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:03:43+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=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37791\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37791\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"WPF Course, Creating a CRUD Application using Entity Framework and WPF\",\"datePublished\":\"2024-11-01T10:00:27+00:00\",\"dateModified\":\"2024-11-01T11:03:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37791\/\"},\"wordCount\":637,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"WPF Programming\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37791\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37791\/\",\"name\":\"WPF Course, Creating a CRUD Application using Entity Framework and WPF - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T10:00:27+00:00\",\"dateModified\":\"2024-11-01T11:03:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37791\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37791\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37791\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF Course, Creating a CRUD Application using Entity Framework and WPF\"}]},{\"@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":"WPF Course, Creating a CRUD Application using Entity Framework and WPF - \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\/37791\/","og_locale":"ko_KR","og_type":"article","og_title":"WPF Course, Creating a CRUD Application using Entity Framework and WPF - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Windows Presentation Foundation (WPF) is a UI framework provided by Microsoft that is used for developing desktop applications. WPF offers powerful tools for composing user interfaces (UI) and facilitates integration with various data bindings and relational data stores. This course provides a detailed explanation of how to implement CRUD (Create, Read, Update, Delete) operations in &hellip; \ub354 \ubcf4\uae30 \"WPF Course, Creating a CRUD Application using Entity Framework and WPF\"","og_url":"https:\/\/atmokpo.com\/w\/37791\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T10:00:27+00:00","article_modified_time":"2024-11-01T11:03:43+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":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37791\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37791\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"WPF Course, Creating a CRUD Application using Entity Framework and WPF","datePublished":"2024-11-01T10:00:27+00:00","dateModified":"2024-11-01T11:03:43+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37791\/"},"wordCount":637,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["WPF Programming"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37791\/","url":"https:\/\/atmokpo.com\/w\/37791\/","name":"WPF Course, Creating a CRUD Application using Entity Framework and WPF - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T10:00:27+00:00","dateModified":"2024-11-01T11:03:43+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37791\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37791\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37791\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"WPF Course, Creating a CRUD Application using Entity Framework and WPF"}]},{"@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\/37791","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=37791"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37791\/revisions"}],"predecessor-version":[{"id":37792,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37791\/revisions\/37792"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}