{"id":33113,"date":"2024-11-01T09:13:51","date_gmt":"2024-11-01T09:13:51","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33113"},"modified":"2024-11-01T11:28:55","modified_gmt":"2024-11-01T11:28:55","slug":"spring-boot-backend-development-course-blog-production-example-writing-controller-method-code","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33113\/","title":{"rendered":"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this course, we will learn how to create a blog using Spring Boot and explore in-depth how to write controller methods. Spring Boot is a Java-based framework that helps you easily develop web applications. In this course, we will implement basic blog functions and aim to build a RESTful API.<\/p>\n<h2>1. Introduction to Spring Boot<\/h2>\n<p>Spring Boot is an extension of the Spring framework that makes it easier to set up and run Spring applications. The main goal is to reduce complex Spring configurations and help you start applications quickly.<\/p>\n<h3>1.1. Advantages of Spring Boot<\/h3>\n<ul>\n<li>Quick Start: Embedded server allows you to run applications in a short time<\/li>\n<li>Auto Configuration: Automatically sets up various libraries and frameworks<\/li>\n<li>Flexible Configuration: Easily manage application settings through configuration files<\/li>\n<\/ul>\n<h2>2. Setting Up the Development Environment<\/h2>\n<p>Before starting the blog project, let&#8217;s set up the necessary development environment. Below are the essential components you need to install for Spring Boot.<\/p>\n<ul>\n<li><strong>Java Development Kit (JDK)<\/strong>: Install JDK 8 or higher.<\/li>\n<li><strong>IDE<\/strong>: Install an IDE such as IntelliJ IDEA, Eclipse, or VSCode<\/li>\n<li><strong>Build Tool<\/strong>: Use Maven or Gradle for dependency management<\/li>\n<\/ul>\n<h3>2.1. Creating a New Spring Boot Project<\/h3>\n<p>You can create a new Spring Boot project using Spring Initializr. Follow the steps below:<\/p>\n<ol>\n<li><strong>Visit the Website<\/strong>: Go to <a href=\"https:\/\/start.spring.io\">Spring Initializr<\/a>.<\/li>\n<li><strong>Enter Project Metadata<\/strong>: Fill in the Group, Artifact, and Name fields, and select Web, JPA, and H2 Database in Dependencies.<\/li>\n<li><strong>Create the Project<\/strong>: Click the Generate button to download the project and open it in your IDE.<\/li>\n<\/ol>\n<h2>3. Designing the Blog Model<\/h2>\n<p>Let&#8217;s design the basic data model for the blog. Our blog will have the following Entity class.<\/p>\n<h3>3.1. Post Entity<\/h3>\n<pre><code>package com.example.blog.model;\n\nimport lombok.Data;\n\nimport javax.persistence.*;\nimport java.time.LocalDateTime;\n\n@Entity\n@Data\n@Table(name = \"posts\")\npublic class Post {\n    @Id\n    @GeneratedValue(strategy = GenerationType.IDENTITY)\n    private Long id;\n\n    private String title;\n    private String content;\n    private LocalDateTime createdAt;\n    private LocalDateTime updatedAt;\n}<\/code><\/pre>\n<p>The code above describes the Post class that represents a blog post. It connects to the database using JPA and automatically generates getter, setter, and toString methods through Lombok&#8217;s @Data annotation.<\/p>\n<h3>3.2. Creating the Repository<\/h3>\n<p>You need to create a Repository interface for interacting with the database. You can easily implement it using Spring Data JPA.<\/p>\n<pre><code>package com.example.blog.repository;\n\nimport com.example.blog.model.Post;\nimport org.springframework.data.jpa.repository.JpaRepository;\nimport org.springframework.stereotype.Repository;\n\n@Repository\npublic interface PostRepository extends JpaRepository<Post, Long> {\n}<\/code><\/pre>\n<h2>4. Implementing the Controller<\/h2>\n<p>Now, let&#8217;s implement a controller that provides a RESTful API for managing blog posts. The controller handles web requests and manages the connection between the service layer and the database.<\/p>\n<h3>4.1. Writing the PostController Class<\/h3>\n<pre><code>package com.example.blog.controller;\n\nimport com.example.blog.model.Post;\nimport com.example.blog.repository.PostRepository;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n@RestController\n@RequestMapping(\"\/api\/posts\")\npublic class PostController {\n    private final PostRepository postRepository;\n\n    @Autowired\n    public PostController(PostRepository postRepository) {\n        this.postRepository = postRepository;\n    }\n\n    @GetMapping\n    public List<Post> getAllPosts() {\n        return postRepository.findAll();\n    }\n\n    @PostMapping\n    public Post createPost(@RequestBody Post post) {\n        return postRepository.save(post);\n    }\n}<\/code><\/pre>\n<p>The code above defines two endpoints for creating and retrieving blog posts. @GetMapping retrieves all posts, while @PostMapping creates a new post.<\/p>\n<h3>4.2. Handling Requests and Responses<\/h3>\n<p>It is essential to handle requests sent from clients and generate appropriate responses. You can notify the client of the request processing result by returning a response along with the HTTP status code.<\/p>\n<pre><code> @PostMapping\n    public ResponseEntity<Post> createPost(@RequestBody Post post) {\n        Post createdPost = postRepository.save(post);\n        return ResponseEntity.status(HttpStatus.CREATED).body(createdPost);\n    }<\/code><\/pre>\n<h2>5. Adding the Service Layer<\/h2>\n<p>By adding a service layer that handles business logic, you can improve code separation. Splitting the interaction logic with the database into the service layer makes testing and maintenance easier.<\/p>\n<h3>5.1. Implementing the PostService Class<\/h3>\n<pre><code>package com.example.blog.service;\n\nimport com.example.blog.model.Post;\nimport com.example.blog.repository.PostRepository;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n@Service\npublic class PostService {\n    private final PostRepository postRepository;\n\n    @Autowired\n    public PostService(PostRepository postRepository) {\n        this.postRepository = postRepository;\n    }\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}<\/code><\/pre>\n<h3>5.2. Using the Service Layer in the Controller<\/h3>\n<p>Modify the controller to call the service layer to perform the logic.<\/p>\n<pre><code> @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    }<\/code><\/pre>\n<h2>6. Exception Handling<\/h2>\n<p>Let&#8217;s also discuss how to handle various exceptions that may occur in the API. You can implement an exception handler to ensure consistent responses.<\/p>\n<h3>6.1. Writing the GlobalExceptionHandler Class<\/h3>\n<pre><code>package com.example.blog.exception;\n\nimport org.springframework.http.HttpStatus;\nimport org.springframework.http.ResponseEntity;\nimport org.springframework.web.bind.annotation.ControllerAdvice;\nimport org.springframework.web.bind.annotation.ExceptionHandler;\n\n@ControllerAdvice\npublic class GlobalExceptionHandler {\n\n    @ExceptionHandler(Exception.class)\n    public ResponseEntity<String> handleException(Exception e) {\n        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());\n    }\n}<\/code><\/pre>\n<h2>7. Testing the API<\/h2>\n<p>Finally, you can test the API using Postman or cURL. Below is an example using Postman.<\/p>\n<h3>7.1. Retrieve All Posts<\/h3>\n<p>GET <code>http:\/\/localhost:8080\/api\/posts<\/code><\/p>\n<h3>7.2. Create a New Post<\/h3>\n<p>Send JSON format data to <code>http:\/\/localhost:8080\/api\/posts<\/code><\/p>\n<pre><code>{\n        \"title\": \"First Blog Post\",\n        \"content\": \"Hello, this is the first blog post.\"\n    }<\/code><\/pre>\n<h2>8. Conclusion and Future Improvements<\/h2>\n<p>We have looked at the basics of developing a blog backend using Spring Boot. You should now understand the essential elements needed to create a RESTful API, including writing controller methods, exception handling, and adding a service layer.<\/p>\n<p>Future improvements could include adding authentication and authorization, file uploads, comments functionality, and writing test code to further enhance the blog features. If you have laid the foundation through this course, challenge yourself with more complex projects! We support your development journey.<\/p>\n<h2>References<\/h2>\n<ul>\n<li><a href=\"https:\/\/spring.io\/projects\/spring-boot\">Official Spring Boot Documentation<\/a><\/li>\n<li><a href=\"https:\/\/docs.spring.io\/spring-data\/jpa\/docs\/current\/reference\/html\/#repositories\">Spring Data JPA Reference<\/a><\/li>\n<li><a href=\"https:\/\/www.baeldung.com\/spring-boot\">Baeldung&#8217;s Spring Boot Course<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this course, we will learn how to create a blog using Spring Boot and explore in-depth how to write controller methods. Spring Boot is a Java-based framework that helps you easily develop web applications. In this course, we will implement basic blog functions and aim to build a RESTful API. 1. Introduction to &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33113\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code&#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-33113","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, Writing Controller Method Code - \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\/33113\/\" \/>\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, Writing Controller Method Code - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this course, we will learn how to create a blog using Spring Boot and explore in-depth how to write controller methods. Spring Boot is a Java-based framework that helps you easily develop web applications. In this course, we will implement basic blog functions and aim to build a RESTful API. 1. Introduction to &hellip; \ub354 \ubcf4\uae30 &quot;Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33113\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:13:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:28:55+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\/33113\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33113\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code\",\"datePublished\":\"2024-11-01T09:13:51+00:00\",\"dateModified\":\"2024-11-01T11:28:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33113\/\"},\"wordCount\":656,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Spring Boot backend development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33113\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33113\/\",\"name\":\"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:13:51+00:00\",\"dateModified\":\"2024-11-01T11:28:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33113\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33113\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33113\/#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, Writing Controller Method Code\"}]},{\"@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, Writing Controller Method Code - \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\/33113\/","og_locale":"ko_KR","og_type":"article","og_title":"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this course, we will learn how to create a blog using Spring Boot and explore in-depth how to write controller methods. Spring Boot is a Java-based framework that helps you easily develop web applications. In this course, we will implement basic blog functions and aim to build a RESTful API. 1. Introduction to &hellip; \ub354 \ubcf4\uae30 \"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code\"","og_url":"https:\/\/atmokpo.com\/w\/33113\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:13:51+00:00","article_modified_time":"2024-11-01T11:28:55+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\/33113\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33113\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code","datePublished":"2024-11-01T09:13:51+00:00","dateModified":"2024-11-01T11:28:55+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33113\/"},"wordCount":656,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Spring Boot backend development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33113\/","url":"https:\/\/atmokpo.com\/w\/33113\/","name":"Spring Boot Backend Development Course, Blog Production Example, Writing Controller Method Code - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:13:51+00:00","dateModified":"2024-11-01T11:28:55+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33113\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33113\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33113\/#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, Writing Controller Method Code"}]},{"@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\/33113","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=33113"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33113\/revisions"}],"predecessor-version":[{"id":33114,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33113\/revisions\/33114"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}