{"id":33095,"date":"2024-11-01T09:13:44","date_gmt":"2024-11-01T09:13:44","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33095"},"modified":"2024-11-01T11:28:59","modified_gmt":"2024-11-01T11:28:59","slug":"spring-boot-backend-development-course-blog-production-example-repository-creation","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33095\/","title":{"rendered":"Spring Boot Backend Development Course, Blog Production Example, Repository Creation"},"content":{"rendered":"<p><body><\/p>\n<h2>1. Introduction<\/h2>\n<p>Spring Boot is a Java-based framework that helps to develop applications quickly and easily. This course explains the core concepts and technologies needed to build a blog web application using Spring Boot. You will cover topics such as database integration, REST API design, and communication with the frontend.<\/p>\n<h3>1.1. Course Objectives<\/h3>\n<ul>\n<li>Understanding the basic concepts of Spring Boot<\/li>\n<li>Designing and implementing RESTful APIs<\/li>\n<li>Learning how to integrate with databases using JPA<\/li>\n<li>User authentication and authorization management using Spring Security<\/li>\n<li>Implementing functionalities through communication with the frontend<\/li>\n<\/ul>\n<h2>2. Environment Setup<\/h2>\n<p>To develop a Spring Boot application, the following development environment is required.<\/p>\n<h3>2.1. Prerequisites<\/h3>\n<ul>\n<li>Java 11 or higher<\/li>\n<li>Spring Boot 2.5 or higher<\/li>\n<li>Maven or Gradle (dependency management tools)<\/li>\n<li>IDE (IntelliJ IDEA, Eclipse, etc.)<\/li>\n<\/ul>\n<h3>2.2. Setting Up the Development Environment<\/h3>\n<p>Follow the steps below to set up the development environment. Install the JAVA JDK, then install the IDE and add the required plugins and libraries.<\/p>\n<h2>3. Creating a Spring Boot Project<\/h2>\n<p>There are many ways to create a Spring Boot project, but the simplest method is to use Spring Initializr.<\/p>\n<h3>3.1. Creating a Project Using Spring Initializr<\/h3>\n<ol>\n<li>Open the <a href=\"https:\/\/start.spring.io\/\" target=\"_blank\" rel=\"noopener\">Spring Initializr<\/a> page in your web browser.<\/li>\n<li>Set up the project metadata.<\/li>\n<li>\n<h4>Project<\/h4>\n<p>Select Maven Project or Gradle Project<\/p>\n<\/li>\n<li>\n<h4>Language<\/h4>\n<p>Select Java<\/p>\n<\/li>\n<li>\n<h4>Spring Boot<\/h4>\n<p>Select the latest stable version<\/p>\n<\/li>\n<li>\n<h4>Project Metadata<\/h4>\n<p>Set the Group and Artifact.<\/p>\n<\/li>\n<li>\n<h4>Dependencies<\/h4>\n<p>Add Web, JPA, H2 Database, Security.<\/p>\n<\/li>\n<li>Click the Generate button to download the project.<\/li>\n<\/ol>\n<h2>4. Understanding the Project Structure<\/h2>\n<p>The structure of a Spring Boot project is the same as a typical Maven project, but there are some differences according to Spring Boot&#8217;s conventions. Below is the basic project structure.<\/p>\n<pre>\n        \u2514\u2500\u2500 demo\n            \u251c\u2500\u2500 DemoApplication.java\n            \u251c\u2500\u2500 controller\n            \u251c\u2500\u2500 model\n            \u251c\u2500\u2500 repository\n            \u2514\u2500\u2500 service\n    <\/pre>\n<h3>4.1. Description of Main Packages<\/h3>\n<ul>\n<li><strong>controller<\/strong>: Contains controller classes that handle web requests.<\/li>\n<li><strong>service<\/strong>: Contains service classes that implement business logic.<\/li>\n<li><strong>repository<\/strong>: Contains repository classes responsible for interacting with the database.<\/li>\n<li><strong>model<\/strong>: Contains classes that define database entities.<\/li>\n<\/ul>\n<h2>5. Designing the Blog Domain Model<\/h2>\n<p>Define the domain model for the blog application. This model includes <strong>Post<\/strong> and <strong>User<\/strong> entities.<\/p>\n<h3>5.1. Post Entity<\/h3>\n<pre><code>\n    @Entity\n    public class Post {\n        @Id\n        @GeneratedValue(strategy = GenerationType.IDENTITY)\n        private Long id;\n        private String title;\n        private String content;\n        \n        @ManyToOne\n        private User author;\n\n        \/\/ Getters and Setters\n    }\n    <\/code><\/pre>\n<h3>5.2. User Entity<\/h3>\n<pre><code>\n    @Entity\n    public class User {\n        @Id\n        @GeneratedValue(strategy = GenerationType.IDENTITY)\n        private Long id;\n        private String username;\n        private String password;\n\n        @OneToMany(mappedBy = \"author\")\n        private List<Post> posts;\n\n        \/\/ Getters and Setters\n    }\n    <\/code><\/pre>\n<h2>6. Creating Repository Interfaces<\/h2>\n<p>Create repository interfaces to access the database using JPA. With Spring Data JPA, CRUD operations can be performed easily.<\/p>\n<h3>6.1. PostRepository<\/h3>\n<pre><code>\n    public interface PostRepository extends JpaRepository<Post, Long> {\n    }\n    <\/code><\/pre>\n<h3>6.2. UserRepository<\/h3>\n<pre><code>\n    public interface UserRepository extends JpaRepository<User, Long> {\n        Optional<User> findByUsername(String username);\n    }\n    <\/code><\/pre>\n<h2>7. Implementing Services<\/h2>\n<p>Implement the service layer to handle business logic. The service calls the repositories to perform DB operations and apply necessary business rules.<\/p>\n<h3>7.1. PostService<\/h3>\n<pre><code>\n    @Service\n    public class PostService {\n        @Autowired\n        private PostRepository postRepository;\n\n        public List<Post> getAllPosts() {\n            return postRepository.findAll();\n        }\n\n        public Post createPost(Post post) {\n            return postRepository.save(post);\n        }\n    }\n    <\/code><\/pre>\n<h3>7.2. UserService<\/h3>\n<pre><code>\n    @Service\n    public class UserService {\n        @Autowired\n        private UserRepository userRepository;\n\n        public User findUserByUsername(String username) {\n            return userRepository.findByUsername(username).orElse(null);\n        }\n\n        public User createUser(User user) {\n            return userRepository.save(user);\n        }\n    }\n    <\/code><\/pre>\n<h2>8. Implementing Controllers<\/h2>\n<p>Implement controllers to handle user requests. Design RESTful web services to manage communication between clients and servers.<\/p>\n<h3>8.1. PostController<\/h3>\n<pre><code>\n    @RestController\n    @RequestMapping(\"\/api\/posts\")\n    public class PostController {\n        @Autowired\n        private PostService postService;\n\n        @GetMapping\n        public List<Post> getAllPosts() {\n            return postService.getAllPosts();\n        }\n\n        @PostMapping\n        public Post createPost(@RequestBody Post post) {\n            return postService.createPost(post);\n        }\n    }\n    <\/code><\/pre>\n<h3>8.2. UserController<\/h3>\n<pre><code>\n    @RestController\n    @RequestMapping(\"\/api\/users\")\n    public class UserController {\n        @Autowired\n        private UserService userService;\n\n        @PostMapping\n        public User createUser(@RequestBody User user) {\n            return userService.createUser(user);\n        }\n\n        @GetMapping(\"\/{username}\")\n        public User getUserByUsername(@PathVariable String username) {\n            return userService.findUserByUsername(username);\n        }\n    }\n    <\/code><\/pre>\n<h2>9. Configuring Spring Security<\/h2>\n<p>Set up Spring Security for user authentication and authorization management. Configure the base security settings to protect URLs and user authentication mechanisms.<\/p>\n<pre><code>\n    @Configuration\n    @EnableWebSecurity\n    public class SecurityConfig extends WebSecurityConfigurerAdapter {\n        @Override\n        protected void configure(HttpSecurity http) throws Exception {\n            http\n                .authorizeRequests()\n                .antMatchers(\"\/api\/users\").permitAll()\n                .anyRequest().authenticated()\n                .and()\n                .formLogin();\n        }\n    }\n    <\/code><\/pre>\n<h2>10. Running and Testing the Application<\/h2>\n<p>Now you&#8217;re ready to run the application and test the API using tools like Postman. Make sure each endpoint works correctly.<\/p>\n<h3>10.1. Running the Application<\/h3>\n<p>For IntelliJ IDEA, you can run the application by clicking the Run icon in the main class or execute the following command in the command line.<\/p>\n<pre><code>.\/mvnw spring-boot:run<\/code><\/pre>\n<h3>10.2. Testing with Postman<\/h3>\n<p>You can test the REST API using Postman. Here are some basic testing examples.<\/p>\n<ul>\n<li><strong>GET \/api\/posts<\/strong>: Retrieve all posts<\/li>\n<li><strong>POST \/api\/posts<\/strong>: Create a new post<\/li>\n<li><strong>GET \/api\/users\/{username}<\/strong>: Retrieve information for a specific user<\/li>\n<li><strong>POST \/api\/users<\/strong>: Create a new user<\/li>\n<\/ul>\n<h2>11. Conclusion<\/h2>\n<p>Through this course, you learned how to build a simple blog application using Spring Boot. This example allowed you to cover various topics such as REST API design, database integration, and implementation of services and controllers. Going forward, try to challenge yourself to develop more complex applications based on this foundation.<\/p>\n<h2>12. References<\/h2>\n<ul>\n<li><a href=\"https:\/\/spring.io\/projects\/spring-boot\" target=\"_blank\" rel=\"noopener\">Official Spring Boot Documentation<\/a><\/li>\n<li><a href=\"https:\/\/docs.spring.io\/spring-data\/jpa\/docs\/current\/reference\/html\/#jpa.query-methods\" target=\"_blank\" rel=\"noopener\">Official Spring Data JPA Documentation<\/a><\/li>\n<li><a href=\"https:\/\/spring.io\/guides\/gs\/rest-service\/\" target=\"_blank\" rel=\"noopener\">Guide to RESTful Web Services<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction Spring Boot is a Java-based framework that helps to develop applications quickly and easily. This course explains the core concepts and technologies needed to build a blog web application using Spring Boot. You will cover topics such as database integration, REST API design, and communication with the frontend. 1.1. Course Objectives Understanding the &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33095\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Blog Production Example, Repository Creation&#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-33095","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, Blog Production Example, Repository Creation - \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\/33095\/\" \/>\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, Blog Production Example, Repository Creation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction Spring Boot is a Java-based framework that helps to develop applications quickly and easily. This course explains the core concepts and technologies needed to build a blog web application using Spring Boot. You will cover topics such as database integration, REST API design, and communication with the frontend. 1.1. Course Objectives Understanding the &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Blog Production Example, Repository Creation&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33095\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:13:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:59+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\/33095\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33095\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Blog Production Example, Repository Creation\",\"datePublished\":\"2024-11-01T09:13:44+00:00\",\"dateModified\":\"2024-11-01T11:28:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33095\/\"},\"wordCount\":605,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33095\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33095\/\",\"name\":\"Spring Boot Backend Development Course, Blog Production Example, Repository Creation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:13:44+00:00\",\"dateModified\":\"2024-11-01T11:28:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33095\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33095\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33095\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Backend Development Course, Blog Production Example, Repository Creation\"}]},{\"@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, Blog Production Example, Repository Creation - \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\/33095\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Blog Production Example, Repository Creation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction Spring Boot is a Java-based framework that helps to develop applications quickly and easily. This course explains the core concepts and technologies needed to build a blog web application using Spring Boot. You will cover topics such as database integration, REST API design, and communication with the frontend. 1.1. Course Objectives Understanding the &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Blog Production Example, Repository Creation\"","og_url":"https:\/\/atmokpo.com\/w\/33095\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:13:44+00:00","article_modified_time":"2024-11-01T11:28:59+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\/33095\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33095\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Blog Production Example, Repository Creation","datePublished":"2024-11-01T09:13:44+00:00","dateModified":"2024-11-01T11:28:59+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33095\/"},"wordCount":605,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33095\/","url":"https:\/\/atmokpo.com\/w\/33095\/","name":"Spring Boot Backend Development Course, Blog Production Example, Repository Creation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:13:44+00:00","dateModified":"2024-11-01T11:28:59+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33095\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33095\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33095\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Backend Development Course, Blog Production Example, Repository Creation"}]},{"@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\/33095","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=33095"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33095\/revisions"}],"predecessor-version":[{"id":33096,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33095\/revisions\/33096"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}