{"id":33197,"date":"2024-11-01T09:14:28","date_gmt":"2024-11-01T09:14:28","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33197"},"modified":"2024-11-01T11:28:31","modified_gmt":"2024-11-01T11:28:31","slug":"spring-boot-backend-development-course-implementing-login-and-logout-with-spring-security-implementing-signup-implementing-view-controller","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33197\/","title":{"rendered":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this lecture, we will learn how to develop a basic backend application using Spring Boot. In particular, we will delve into implementing login and logout functionalities, user registration functionality using Spring Security, and enhancing the user experience through view controllers.<\/p>\n<h2>1. Introduction to Spring Boot and Security<\/h2>\n<p>Spring Boot is an application development tool based on the Spring Framework, designed to help you build applications quickly without complex configurations. Spring Security is a powerful tool for managing the security of applications and makes it easy to handle authentication and authorization.<\/p>\n<h3>1.1. Requirements<\/h3>\n<ul>\n<li>JDK 8 or higher<\/li>\n<li>IDE (IntelliJ IDEA, Eclipse, etc.)<\/li>\n<li>Maven or Gradle<\/li>\n<\/ul>\n<h3>1.2. Project Setup<\/h3>\n<p>To create a Spring Boot project, use Spring Initializr. Please add the following dependencies:<\/p>\n<pre>\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-boot-starter-security&lt;\/artifactId&gt;\n        &lt;\/dependency&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n            &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;\/artifactId&gt;\n        &lt;\/dependency&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;com.h2database&lt;\/groupId&gt;\n            &lt;artifactId&gt;h2&lt;\/artifactId&gt;\n            &lt;scope&gt;runtime&lt;\/scope&gt;\n        &lt;\/dependency&gt;\n    <\/pre>\n<h2>2. Implementing User Registration Functionality<\/h2>\n<p>To register a user, follow these steps:<\/p>\n<h3>2.1. Creating an Entity<\/h3>\n<p>Create a User entity to hold user information.<\/p>\n<pre>\n    @Entity\n    public class User {\n        @Id\n        @GeneratedValue(strategy = GenerationType.IDENTITY)\n        private Long id;\n\n        private String username;\n        private String password;\n        private String email;\n\n        \/\/ Getters and Setters\n    }\n    <\/pre>\n<h3>2.2. Creating a Repository Interface<\/h3>\n<p>Create a UserRepository to interact with the database using JPA.<\/p>\n<pre>\n    public interface UserRepository extends JpaRepository&lt;User, Long&gt; {\n        Optional&lt;User&gt; findByUsername(String username);\n    }\n    <\/pre>\n<h3>2.3. Writing a Service Class<\/h3>\n<p>Create a UserService class to handle registration logic.<\/p>\n<pre>\n    @Service\n    public class UserService {\n        @Autowired\n        private UserRepository userRepository;\n\n        public User registerNewUser(User user) {\n            \/\/ Additional business logic (e.g., password encryption)\n            return userRepository.save(user);\n        }\n    }\n    <\/pre>\n<h3>2.4. Creating a Controller<\/h3>\n<p>Create a UserController that provides a REST API for user registration.<\/p>\n<pre>\n    @RestController\n    @RequestMapping(\"\/api\/users\")\n    public class UserController {\n        @Autowired\n        private UserService userService;\n\n        @PostMapping(\"\/register\")\n        public ResponseEntity&lt;User&gt; registerUser(@RequestBody User user) {\n            User newUser = userService.registerNewUser(user);\n            return ResponseEntity.ok(newUser);\n        }\n    }\n    <\/pre>\n<h3>2.5. Password Encryption<\/h3>\n<p>We will use bcrypt hash function to securely store passwords. The password will be encrypted in UserService.<\/p>\n<pre>\n    @Autowired\n    private PasswordEncoder passwordEncoder;\n\n    public User registerNewUser(User user) {\n        user.setPassword(passwordEncoder.encode(user.getPassword()));\n        return userRepository.save(user);\n    }\n    <\/pre>\n<h2>3. Implementing Login and Logout Functionality<\/h2>\n<p>Now that user registration is complete, we will implement the login and logout functionalities.<\/p>\n<h3>3.1. Spring Security Configuration<\/h3>\n<p>Set up Spring Security to implement basic user authentication. Write the SecurityConfig class.<\/p>\n<pre>\n    @Configuration\n    @EnableWebSecurity\n    public class SecurityConfig extends WebSecurityConfigurerAdapter {\n        @Autowired\n        private UserDetailsService userDetailsService;\n\n        @Override\n        protected void configure(AuthenticationManagerBuilder auth) throws Exception {\n            auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());\n        }\n\n        @Override\n        protected void configure(HttpSecurity http) throws Exception {\n            http.csrf().disable()\n                .authorizeRequests()\n                .antMatchers(\"\/api\/users\/register\").permitAll()\n                .anyRequest().authenticated()\n                .and()\n                .formLogin()\n                .loginPage(\"\/login\")\n                .permitAll()\n                .and()\n                .logout()\n                .permitAll();\n        }\n\n        @Bean\n        public PasswordEncoder passwordEncoder() {\n            return new BCryptPasswordEncoder();\n        }\n    }\n    <\/pre>\n<h3>3.2. Creating Login Page and Logout Functionality<\/h3>\n<p>Create a login page and implement logout functionality. The login page is written in HTML.<\/p>\n<pre>\n    &lt;form action=\"\/login\" method=\"post\"&gt;\n        &lt;label&gt;Username:&lt;\/label&gt;\n        &lt;input type=\"text\" name=\"username\" required&gt;\n        &lt;label&gt;Password:&lt;\/label&gt;\n        &lt;input type=\"password\" name=\"password\" required&gt;\n        &lt;button type=\"submit\"&gt;Login&lt;\/button&gt;\n    &lt;\/form&gt;\n    <\/pre>\n<h2>4. Implementing View Controller<\/h2>\n<p>Finally, we will create a view controller to add functionality for displaying data to the user.<\/p>\n<h3>4.1. Creating a Controller<\/h3>\n<p>Create a controller that returns HTML pages using Spring MVC&#8217;s view controllers.<\/p>\n<pre>\n    @Controller\n    public class ViewController {\n        @GetMapping(\"\/register\")\n        public String registerForm(Model model) {\n            model.addAttribute(\"user\", new User());\n            return \"register\";\n        }\n\n        @GetMapping(\"\/login\")\n        public String loginForm() {\n            return \"login\";\n        }\n    }\n    <\/pre>\n<h3>4.2. Using Thymeleaf Templates<\/h3>\n<p>Use Thymeleaf to render HTML in the view layer. Add a register.html file to the resources\/templates folder.<\/p>\n<pre>\n    &lt;html xmlns:th=\"http:\/\/www.w3.org\/1999\/xhtml\"&gt;\n    &lt;body&gt;\n        &lt;form action=\"@{\/api\/users\/register}\" th:object=\"${user}\" method=\"post\"&gt;\n            &lt;label&gt;Username:&lt;\/label&gt;\n            &lt;input type=\"text\" th:field=\"*{username}\" required&gt;\n            &lt;label&gt;Password:&lt;\/label&gt;\n            &lt;input type=\"password\" th:field=\"*{password}\" required&gt;\n            &lt;button type=\"submit\"&gt;Register&lt;\/button&gt;\n        &lt;\/form&gt;\n    &lt;\/body&gt;\n    <\/pre>\n<h1>5. Conclusion<\/h1>\n<p>You have now learned how to build a simple backend application with user registration, login, and logout functionality using Spring Boot. This serves as a foundation for developing more complex applications using Spring Boot. Next steps may include database integration, API documentation, and frontend integration. If you have any questions or need further assistance, please leave a comment!<\/p>\n<footer>\n<p>\u00a9 2023 Your Blog Name. All rights reserved.<\/p>\n<\/footer>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this lecture, we will learn how to develop a basic backend application using Spring Boot. In particular, we will delve into implementing login and logout functionalities, user registration functionality using Spring Security, and enhancing the user experience through view controllers. 1. Introduction to Spring Boot and Security Spring Boot is an application development &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33197\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller&#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":[131],"tags":[],"class_list":["post-33197","post","type-post","status-publish","format-standard","hentry","category-spring-boot-backend-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller - \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\/33197\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this lecture, we will learn how to develop a basic backend application using Spring Boot. In particular, we will delve into implementing login and logout functionalities, user registration functionality using Spring Security, and enhancing the user experience through view controllers. 1. Introduction to Spring Boot and Security Spring Boot is an application development &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33197\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:14:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:31+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\/33197\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33197\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller\",\"datePublished\":\"2024-11-01T09:14:28+00:00\",\"dateModified\":\"2024-11-01T11:28:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33197\/\"},\"wordCount\":395,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33197\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33197\/\",\"name\":\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:14:28+00:00\",\"dateModified\":\"2024-11-01T11:28:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33197\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33197\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33197\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller\"}]},{\"@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":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller - \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\/33197\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this lecture, we will learn how to develop a basic backend application using Spring Boot. In particular, we will delve into implementing login and logout functionalities, user registration functionality using Spring Security, and enhancing the user experience through view controllers. 1. Introduction to Spring Boot and Security Spring Boot is an application development &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller\"","og_url":"https:\/\/atmokpo.com\/w\/33197\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:14:28+00:00","article_modified_time":"2024-11-01T11:28:31+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\/33197\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33197\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller","datePublished":"2024-11-01T09:14:28+00:00","dateModified":"2024-11-01T11:28:31+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33197\/"},"wordCount":395,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33197\/","url":"https:\/\/atmokpo.com\/w\/33197\/","name":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:14:28+00:00","dateModified":"2024-11-01T11:28:31+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33197\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33197\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33197\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Implementing Login and Logout with Spring Security, Implementing Signup, Implementing View Controller"}]},{"@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\/33197","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=33197"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33197\/revisions"}],"predecessor-version":[{"id":33198,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33197\/revisions\/33198"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}