{"id":13132,"date":"2022-02-09T19:36:11","date_gmt":"2022-02-09T19:36:11","guid":{"rendered":"https:\/\/exceptionly.com\/?p=13132"},"modified":"2022-06-29T16:34:45","modified_gmt":"2022-06-29T16:34:45","slug":"swagger-2-with-spring-boot","status":"publish","type":"post","link":"https:\/\/exceptionly.com\/ar\/2022\/02\/09\/swagger-2-with-spring-boot\/","title":{"rendered":"Setting Up Swagger 2 with Spring Boot"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"13132\" class=\"elementor elementor-13132\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-10bb878 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"10bb878\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6dcfc0f\" data-id=\"6dcfc0f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-559b2a5 elementor-widget elementor-widget-text-editor\" data-id=\"559b2a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In today\u2019s enterprise software development world, separating the front-end and back-end of a web application is almost a necessity. Consequently, this situation might shape teams or engineers who work on the front and back-end side and eventually require clear and up-to-date API documentation between sides.\u00a0<\/p><p>Therefore Swagger is an essential open-source toolset that helps you generate beautiful and informative documentation and enables you to design your APIs.<\/p><p>In this tutorial, I will explain \u201chow to set up Swagger 2 on top of a Spring Boot application\u201d in detail.<\/p><p>Check out the complete source code for the \u201cSwagger 2 with Spring Boot\u201d tutorial from the Exceptionly Github account \u2013 <a href=\"https:\/\/github.com\/exceptionly\/blog-spring-boot-docker\">blog-spring-boot-docker<\/a> repository.\u00a0<\/p><h2>Adding the Swagger 2 Gradle Dependency<\/h2><p>With any third-party library, we will need to add the Swagger dependency to the application. For this tutorial, I will use Springfox implementation of the Swagger specification. Feel free to check out the latest version from <a href=\"https:\/\/mvnrepository.com\/artifact\/io.springfox\/springfox-boot-starter\">mvnrepository.com<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-95f46d5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"95f46d5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b19064e\" data-id=\"b19064e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-caeacf0 elementor-widget elementor-widget-code-highlight\" data-id=\"caeacf0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>implementation 'io.springfox:springfox-boot-starter:3.0.0'<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9badbe9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9badbe9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f351b2e\" data-id=\"f351b2e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0dda6f7 elementor-widget elementor-widget-text-editor\" data-id=\"0dda6f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Refresh Gradle dependencies to make sure we fetch the springfox-boot-starter correctly.<\/p><h2>Spring Boot Configuration<\/h2><p>To enable a Spring Boot application for Swagger, we need to create a Docket bean that will initiate an instance with defaults and the details you specified in the configuration.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7d03582 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7d03582\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-973b264\" data-id=\"973b264\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d51709f elementor-widget elementor-widget-code-highlight\" data-id=\"d51709f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>@Configuration\n@EnableWebMvc\npublic class SwaggerConfig {\n\n    @Bean\n    public Docket api() {\n        return new Docket(DocumentationType.SWAGGER_2)\n                .select()\n                .apis(RequestHandlerSelectors.basePackage(\"com.exceptionly.tutorials.demo.controller\"))\n                .apis(RequestHandlerSelectors.any())\n                .paths(PathSelectors.any())\n                .build();\n    }\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-766d032 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"766d032\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-89c367f\" data-id=\"89c367f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-39ce8c0 elementor-widget elementor-widget-text-editor\" data-id=\"39ce8c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Setting up Swagger in Spring Boot is easy as pie. You actually may spend way more time to verify it by creating an API \ud83d\ude42\u00a0<\/p><h2>Creating Sample API<\/h2><p>I will create a simple Customer Controller that basically will provide 3 APIs<\/p><p>GET\u00a0 \/customer\/{id}<\/p><p>DELETE \/customer\/{id}<\/p><p>POST \/customer<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2226656 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2226656\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8ccaeb2\" data-id=\"8ccaeb2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-56bc79b elementor-widget elementor-widget-code-highlight\" data-id=\"56bc79b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>@RestController\n@RequestMapping(\"customer\")\npublic class CustomerController {\n    private final CustomerService customerService;\n\n    public CustomerController(CustomerService customerService) {\n        this.customerService = customerService;\n    }\n\n    @GetMapping(\"\/{id}\")\n    public ResponseEntity<Customer> get(@PathVariable final Long id) {\n        return ResponseEntity.ok(customerService.get(id));\n    }\n\n    @DeleteMapping(\"\/{id}\")\n    public ResponseEntity<Customer> delete(@PathVariable final Long id) {\n        return ResponseEntity.ok(customerService.delete(id));\n    }\n\n    @PostMapping\n    public ResponseEntity<Customer> save(@RequestBody final Customer customer) {\n        return ResponseEntity.ok(customerService.save(customer));\n    }\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7f64b74 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7f64b74\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9fb1253\" data-id=\"9fb1253\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b5bea05 elementor-widget elementor-widget-text-editor\" data-id=\"b5bea05\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p dir=\"ltr\">Create an interface for Service with default methods.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-528b878 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"528b878\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f05b8be\" data-id=\"f05b8be\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-35af2f4 elementor-widget elementor-widget-code-highlight\" data-id=\"35af2f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>public interface CustomerService {\n    Customer get(Long id);\n    Customer delete(Long id);\n    Customer save(Customer customer);\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5710822 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5710822\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1888423\" data-id=\"1888423\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fe1440e elementor-widget elementor-widget-text-editor\" data-id=\"fe1440e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>And Service implementation;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9980514 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9980514\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7d3d2c3\" data-id=\"7d3d2c3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6947f44 elementor-widget elementor-widget-code-highlight\" data-id=\"6947f44\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-java\">\n\t\t\t\t<code readonly=\"true\" class=\"language-java\">\n\t\t\t\t\t<xmp>@Service\npublic class CustomerServiceImpl implements CustomerService {\n    @Override\n    public Customer get(Long id) {\n        return new Customer(id, \"Janis\", \"Joplin\");\n    }\n\n    @Override\n    public Customer delete(Long id) {\n        return new Customer(id, \"Chuck\", \"Norris\");\n    }\n\n    @Override\n    public Customer save(Customer customer) {\n        return new Customer(1L, customer.getName(), customer.getSurname());\n    }\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d5feb69 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d5feb69\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6132d39\" data-id=\"6132d39\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-005010f elementor-widget elementor-widget-text-editor\" data-id=\"005010f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Run the application from Spring Boot application starter or by the following command;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2461566 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2461566\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ac60911\" data-id=\"ac60911\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-38224f3 elementor-widget elementor-widget-code-highlight\" data-id=\"38224f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash\">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>.\/gradlew bootRun<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4555d3a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4555d3a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a53da43\" data-id=\"a53da43\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-51f1bb0 elementor-widget elementor-widget-text-editor\" data-id=\"51f1bb0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Once the application is started, navigate to the URL <a href=\"http:\/\/localhost:8080\/swagger-ui\/index.html#\/\">http:\/\/localhost:8080\/swagger-ui\/index.html<\/a> to check out the Swagger UI.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-21f3792 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"21f3792\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ebe0216\" data-id=\"ebe0216\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6b415b9 elementor-widget elementor-widget-image\" data-id=\"6b415b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"377\" src=\"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/swagger-1024x482.png\" class=\"attachment-large size-large wp-image-13149\" alt=\"\" srcset=\"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/swagger-1024x482.png 1024w, https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/swagger-300x141.png 300w, https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/swagger-768x362.png 768w, https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/swagger-1536x723.png 1536w, https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/swagger-2048x964.png 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-263ac7c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"263ac7c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-43b3df9\" data-id=\"43b3df9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9a70285 elementor-widget elementor-widget-text-editor\" data-id=\"9a70285\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 data-id=\"conclusion\"><strong>Conclusion<\/strong><\/h2><p>Exceptionly blog has excellent tutorials for challenging languages or tools.\u00a0<\/p><p>Feel free to explore some of my other posts;\u00a0<\/p><ul><li aria-level=\"1\"><a href=\"https:\/\/exceptionly.com\/ar\/2021\/12\/12\/welcome-to-quarkus-supersonic-kubernetes-native-java-framework\/\">Welcome to Quarkus: Supersonic, Kubernetes-Native Java Framework<\/a><\/li><li aria-level=\"1\"><a href=\"https:\/\/exceptionly.com\/ar\/2021\/07\/07\/how-to-start-coding-java-in-60-minutes\/\">Start Coding Java in 60 minutes<\/a><\/li><li aria-level=\"1\"><a href=\"https:\/\/exceptionly.com\/ar\/2021\/11\/29\/dockerize-a-spring-boot-application\/\">Dockerize a Spring Boot Application<\/a><\/li><li aria-level=\"1\"><a href=\"https:\/\/exceptionly.com\/ar\/2021\/10\/09\/concurrency-and-multithreading-in-java\/\">Concurrency and Multithreading in Java<\/a><\/li><li aria-level=\"1\"><a href=\"https:\/\/exceptionly.com\/ar\/2021\/09\/04\/deployment-strategies-canary-vs-blue-green-deployments\/\">\u00a0Canary vs Blue-Green Deployments<\/a><\/li><li style=\"font-size: 21px;\" aria-level=\"1\"><a style=\"color: #e7a39f;\" href=\"https:\/\/exceptionly.com\/ar\/2021\/08\/01\/5-top-common-mistakes-every-beginner-java-programmer-makes\/\">5 Top Common Mistakes Every Beginner Java Programmer Makes<\/a><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>In today\u2019s enterprise software development world, separating the front-end and back-end of a web application is almost a necessity. Consequently, this situation might shape teams or engineers who work on the front and back-end sides and eventually require clear and up-to-date API documentation between sides.\u00a0 Therefore Swagger is an essential open-source toolset that helps you [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":13302,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[82],"tags":[176,206,143,178,177,175,154,174],"class_list":["post-13132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-api-documentation","tag-backend","tag-java","tag-openapi","tag-rest","tag-restapi","tag-spring-boot","tag-swagger"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.5 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Setting Up Swagger 2 with Spring Boot - Exceptionly<\/title>\n<meta name=\"description\" content=\"Swagger is an essential open-source toolset that helps you to generate beautiful and informative documentation as well as enables you to design your APIs\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/exceptionly.com\/ar\/2022\/02\/09\/swagger-2-with-spring-boot\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting Up Swagger 2 with Spring Boot\" \/>\n<meta property=\"og:description\" content=\"In today\u2019s enterprise software development world, separating the front-end and back-end of a web application is almost a necessity. Consequently, this\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exceptionly.com\/ar\/2022\/02\/09\/swagger-2-with-spring-boot\/\" \/>\n<meta property=\"og:site_name\" content=\"Exceptionly\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/exceptionly\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-09T19:36:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-29T16:34:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/setting-up-swagger-2-with-spring-boot.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1930\" \/>\n\t<meta property=\"og:image:height\" content=\"766\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Fatma Elverir\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@exceptionly\" \/>\n<meta name=\"twitter:site\" content=\"@exceptionly\" \/>\n<meta name=\"twitter:label1\" content=\"\u0643\u064f\u062a\u0628 \u0628\u0648\u0627\u0633\u0637\u0629\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatma Elverir\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u062f\u0642\u0627\u0626\u0642\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/\"},\"author\":{\"name\":\"Fatma Elverir\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#\\\/schema\\\/person\\\/a2600170dfb4513350affede916c0ccf\"},\"headline\":\"Setting Up Swagger 2 with Spring Boot\",\"datePublished\":\"2022-02-09T19:36:11+00:00\",\"dateModified\":\"2022-06-29T16:34:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/\"},\"wordCount\":352,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exceptionly.com\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/setting-up-swagger-2-with-spring-boot.jpg\",\"keywords\":[\"API Documentation\",\"Backend\",\"Java\",\"openAPI\",\"REST\",\"RestApi\",\"Spring Boot\",\"Swagger\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/\",\"url\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/\",\"name\":\"Setting Up Swagger 2 with Spring Boot - Exceptionly\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exceptionly.com\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/setting-up-swagger-2-with-spring-boot.jpg\",\"datePublished\":\"2022-02-09T19:36:11+00:00\",\"dateModified\":\"2022-06-29T16:34:45+00:00\",\"description\":\"Swagger is an essential open-source toolset that helps you to generate beautiful and informative documentation as well as enables you to design your APIs\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exceptionly.com\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/setting-up-swagger-2-with-spring-boot.jpg\",\"contentUrl\":\"https:\\\/\\\/exceptionly.com\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/setting-up-swagger-2-with-spring-boot.jpg\",\"width\":1930,\"height\":766,\"caption\":\"Setting up Swagger 2 with Spring Boot\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/2022\\\/02\\\/09\\\/swagger-2-with-spring-boot\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exceptionly.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting Up Swagger 2 with Spring Boot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#website\",\"url\":\"https:\\\/\\\/exceptionly.com\\\/\",\"name\":\"Exceptionly\",\"description\":\"Remote software talent acquisition at scale\",\"publisher\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exceptionly.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#organization\",\"name\":\"Exceptionly\",\"url\":\"https:\\\/\\\/exceptionly.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/exceptionly.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/exceptionly-search-logo.png\",\"contentUrl\":\"https:\\\/\\\/exceptionly.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/exceptionly-search-logo.png\",\"width\":400,\"height\":400,\"caption\":\"Exceptionly\"},\"image\":{\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/exceptionly\\\/\",\"https:\\\/\\\/x.com\\\/exceptionly\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/exceptionly\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCet5wATTyif6knI0h4vUkNA\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/exceptionly.com\\\/#\\\/schema\\\/person\\\/a2600170dfb4513350affede916c0ccf\",\"name\":\"Fatma Elverir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93179e5b3e943c5bcda6ea20d6b37723c01dedb150ab7724bb4fb9af22eb3de6?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93179e5b3e943c5bcda6ea20d6b37723c01dedb150ab7724bb4fb9af22eb3de6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93179e5b3e943c5bcda6ea20d6b37723c01dedb150ab7724bb4fb9af22eb3de6?s=96&d=mm&r=g\",\"caption\":\"Fatma Elverir\"},\"sameAs\":[\"https:\\\/\\\/exceptionly.com\"],\"url\":\"https:\\\/\\\/exceptionly.com\\\/ar\\\/author\\\/fatmaelverir\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Setting Up Swagger 2 with Spring Boot - Exceptionly","description":"Swagger is an essential open-source toolset that helps you to generate beautiful and informative documentation as well as enables you to design your APIs","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:\/\/exceptionly.com\/ar\/2022\/02\/09\/swagger-2-with-spring-boot\/","og_locale":"ar_AR","og_type":"article","og_title":"Setting Up Swagger 2 with Spring Boot","og_description":"In today\u2019s enterprise software development world, separating the front-end and back-end of a web application is almost a necessity. Consequently, this","og_url":"https:\/\/exceptionly.com\/ar\/2022\/02\/09\/swagger-2-with-spring-boot\/","og_site_name":"Exceptionly","article_publisher":"https:\/\/www.facebook.com\/exceptionly\/","article_published_time":"2022-02-09T19:36:11+00:00","article_modified_time":"2022-06-29T16:34:45+00:00","og_image":[{"width":1930,"height":766,"url":"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/setting-up-swagger-2-with-spring-boot.jpg","type":"image\/jpeg"}],"author":"Fatma Elverir","twitter_card":"summary_large_image","twitter_creator":"@exceptionly","twitter_site":"@exceptionly","twitter_misc":{"\u0643\u064f\u062a\u0628 \u0628\u0648\u0627\u0633\u0637\u0629":"Fatma Elverir","\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631":"3 \u062f\u0642\u0627\u0626\u0642"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#article","isPartOf":{"@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/"},"author":{"name":"Fatma Elverir","@id":"https:\/\/exceptionly.com\/#\/schema\/person\/a2600170dfb4513350affede916c0ccf"},"headline":"Setting Up Swagger 2 with Spring Boot","datePublished":"2022-02-09T19:36:11+00:00","dateModified":"2022-06-29T16:34:45+00:00","mainEntityOfPage":{"@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/"},"wordCount":352,"commentCount":1,"publisher":{"@id":"https:\/\/exceptionly.com\/#organization"},"image":{"@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#primaryimage"},"thumbnailUrl":"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/setting-up-swagger-2-with-spring-boot.jpg","keywords":["API Documentation","Backend","Java","openAPI","REST","RestApi","Spring Boot","Swagger"],"articleSection":["Tutorials"],"inLanguage":"ar","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/","url":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/","name":"Setting Up Swagger 2 with Spring Boot - Exceptionly","isPartOf":{"@id":"https:\/\/exceptionly.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#primaryimage"},"image":{"@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#primaryimage"},"thumbnailUrl":"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/setting-up-swagger-2-with-spring-boot.jpg","datePublished":"2022-02-09T19:36:11+00:00","dateModified":"2022-06-29T16:34:45+00:00","description":"Swagger is an essential open-source toolset that helps you to generate beautiful and informative documentation as well as enables you to design your APIs","breadcrumb":{"@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/"]}]},{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#primaryimage","url":"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/setting-up-swagger-2-with-spring-boot.jpg","contentUrl":"https:\/\/exceptionly.com\/wp-content\/uploads\/2022\/02\/setting-up-swagger-2-with-spring-boot.jpg","width":1930,"height":766,"caption":"Setting up Swagger 2 with Spring Boot"},{"@type":"BreadcrumbList","@id":"https:\/\/exceptionly.com\/2022\/02\/09\/swagger-2-with-spring-boot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exceptionly.com\/"},{"@type":"ListItem","position":2,"name":"Setting Up Swagger 2 with Spring Boot"}]},{"@type":"WebSite","@id":"https:\/\/exceptionly.com\/#website","url":"https:\/\/exceptionly.com\/","name":"Exceptionly","description":"Remote software talent acquisition at scale","publisher":{"@id":"https:\/\/exceptionly.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exceptionly.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/exceptionly.com\/#organization","name":"Exceptionly","url":"https:\/\/exceptionly.com\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/exceptionly.com\/#\/schema\/logo\/image\/","url":"https:\/\/exceptionly.com\/wp-content\/uploads\/2021\/05\/exceptionly-search-logo.png","contentUrl":"https:\/\/exceptionly.com\/wp-content\/uploads\/2021\/05\/exceptionly-search-logo.png","width":400,"height":400,"caption":"Exceptionly"},"image":{"@id":"https:\/\/exceptionly.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/exceptionly\/","https:\/\/x.com\/exceptionly","https:\/\/www.linkedin.com\/company\/exceptionly\/","https:\/\/www.youtube.com\/channel\/UCet5wATTyif6knI0h4vUkNA"]},{"@type":"Person","@id":"https:\/\/exceptionly.com\/#\/schema\/person\/a2600170dfb4513350affede916c0ccf","name":"Fatma Elverir","image":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/secure.gravatar.com\/avatar\/93179e5b3e943c5bcda6ea20d6b37723c01dedb150ab7724bb4fb9af22eb3de6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/93179e5b3e943c5bcda6ea20d6b37723c01dedb150ab7724bb4fb9af22eb3de6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93179e5b3e943c5bcda6ea20d6b37723c01dedb150ab7724bb4fb9af22eb3de6?s=96&d=mm&r=g","caption":"Fatma Elverir"},"sameAs":["https:\/\/exceptionly.com"],"url":"https:\/\/exceptionly.com\/ar\/author\/fatmaelverir\/"}]}},"_links":{"self":[{"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/posts\/13132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/comments?post=13132"}],"version-history":[{"count":0,"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/posts\/13132\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/media\/13302"}],"wp:attachment":[{"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/media?parent=13132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/categories?post=13132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exceptionly.com\/ar\/wp-json\/wp\/v2\/tags?post=13132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}