{"id":1476,"date":"2020-11-15T16:40:04","date_gmt":"2020-11-15T07:40:04","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=1476"},"modified":"2020-11-15T19:00:39","modified_gmt":"2020-11-15T10:00:39","slug":"responseentity-%ec%97%90-generic-type-%ec%82%ac%ec%9a%a9%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=1476","title":{"rendered":"ResponseEntity \uc5d0 Generic type \uc0ac\uc6a9\ud558\uae30"},"content":{"rendered":"<h1>ResponseEntity \uc5d0 Generic type \uc0ac\uc6a9\ud558\uae30<\/h1>\n<h2>Generic type<\/h2>\n<pre><code class=\"language-java\">@Getter\n@NoArgsConstructor\npublic class MenusSaveRequestDto implements Serializable {\n\n    private Integer pidx;\n    private String menuName;\n    private String useyn;\n\n    @Builder\n    public MenusSaveRequestDto(Integer pidx, String menuName, String useyn) {\n        this.pidx = pidx;\n        this.menuName = menuName;\n        this.useyn = useyn;\n    }\n\n    @Builder\n    public MenusSaveRequestDto(Integer pidx, String menuName) {\n        this.pidx = pidx;\n        this.menuName = menuName;\n        this.useyn = &quot;Y&quot;;\n    }\n}<\/code><\/pre>\n<pre><code class=\"language-java\">@Getter\n@Builder\npublic class MenusResponseDto implements Serializable {\n\n    private final Integer cidx;\n    private final Integer pidx;\n    private final String menuName;\n    private final String useyn;\n    private final LocalDateTime regdate;\n    private final LocalDateTime lastupdate;\n}<\/code><\/pre>\n<pre><code class=\"language-java\">@Getter\n@AllArgsConstructor\npublic class ApiResponseMessage {\n    private final String code;\n    private final String message;\n}<\/code><\/pre>\n<pre><code class=\"language-java\">@Getter\n@Setter\npublic class ApiResponseWithData&lt;T&gt; extends ApiResponseMessage {\n\n    private T data;\n\n    @Builder\n    public ApiResponseWithData(String code, String message, T data) {\n        super(code, message);\n        this.data = data;\n    }\n}<\/code><\/pre>\n<pre><code class=\"language-java\">@Getter\n@Setter\npublic class ApiResponseWithPaging&lt;T&gt; extends ApiResponseWithData&lt;List&lt;T&gt;&gt; {\n\n    private int pageNo;\n    private int pageSize;\n\n    private int resultCount;\n    private int totalCount;\n    private int totalPages;\n\n    private boolean isFirst;\n    private boolean isLast;\n\n    @Builder(builderMethodName = &quot;ApiResponseWithPagingBuilder&quot;)\n    public ApiResponseWithPaging(String code, String message, List&lt;T&gt; data, int pageNo, int pageSize, int resultCount, int totalCount, int totalPages, boolean isFirst, boolean isLast) {\n        super(code, message, data);\n\n        System.out.println(3333);\n        this.pageNo = pageNo;\n        this.pageSize = pageSize;\n        this.resultCount = resultCount;\n        this.totalCount = totalCount;\n        this.totalPages = totalPages;\n        this.isFirst = isFirst;\n        this.isLast = isLast;\n    }\n}<\/code><\/pre>\n<h2>ResponseEntity \uc640 Generic type<\/h2>\n<pre><code class=\"language-java\">@Controller\npublic class MenuIndexController {\n\n    final String TARGET_URI = &quot;http:\/\/localhost:8081\/v1\/settings\/menu&quot;;\n\n    private final RestTemplate restTemplate;\n\n    \/\/ ......\n\n    @GetMapping(&quot;\/settings\/menu\/&quot;)\n    public String index() {\n\n        String URL_SAVE = TARGET_URI;\n        String URL_UPDATE = TARGET_URI + &quot;\/5&quot;;\n        String URL_GET_ONE = TARGET_URI + &quot;\/5&quot;;\n        String url = TARGET_URI + &quot;\/5&quot;;\n\n        MenusSaveRequestDto menusSaveRequestDto = MenusSaveRequestDto.builder()\n                .pidx(0)\n                .menuName(&quot;\uba54\ub274 \ud558\ub098\ub354 55555aaaa&quot;)\n                .build();\n\n        try {\n            \/\/ \uc800\uc7a5\n            HttpEntity&lt;?&gt; httpEntity = new HttpEntity&lt;Object&gt;(menusSaveRequestDto);\n            ResponseEntity&lt;ApiResponseWithData&lt;MenusResponseDto&gt;&gt; res_post\n                    = restTemplate.exchange(\n                    URL_SAVE,\n                    HttpMethod.POST,\n                    httpEntity,\n                    new ParameterizedTypeReference&lt;ApiResponseWithData&lt;MenusResponseDto&gt;&gt;() {});\n            System.out.println(res_post.getBody().getCode());\n            System.out.println(res_post.getBody().getMessage());\n            MenusResponseDto data_post = res_post.getBody().getData();\n            System.out.println(data_post.getCidx());\n\n            \/\/ \uc0ad\uc81c\n            String URL_DELETE = TARGET_URI + &quot;\/&quot; + data_post.getCidx();\n            restTemplate.delete(URL_DELETE);\n\n            \/\/ \uc218\uc815\n            restTemplate.put(URL_UPDATE, menusSaveRequestDto);\n\n            \/\/ \uc870\ud68c\n\/\/            res = restTemplate.getForEntity(URL_GET_ONE, ApiResponseWithData.class);\n            ResponseEntity&lt;ApiResponseWithData&lt;MenusResponseDto&gt;&gt; res_get\n                    = restTemplate.exchange(\n                    URL_GET_ONE,\n                    HttpMethod.GET,\n                    null,\n                    new ParameterizedTypeReference&lt;ApiResponseWithData&lt;MenusResponseDto&gt;&gt;() {});\n            System.out.println(res_get.getBody().getCode());\n            System.out.println(res_get.getBody().getMessage());\n            MenusResponseDto data_get = res_get.getBody().getData();\n            System.out.println(data_get.getCidx());\n\n            \/\/ \uac80\uc0c9\n            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(URL_SEARCH)\n                    .queryParam(&quot;pgno&quot;, &quot;4&quot;);\n            ResponseEntity&lt;ApiResponseWithPaging&lt;MenusResponseDto&gt;&gt; res_search\n                    = restTemplate.exchange(\n                    builder.toUriString(),\n                    HttpMethod.GET,\n                    null,\n                    new ParameterizedTypeReference&lt;ApiResponseWithPaging&lt;MenusResponseDto&gt;&gt;() {});\n            System.out.println(res_search.getBody().getCode());\n            System.out.println(res_search.getBody().getMessage());\n            List&lt;MenusResponseDto&gt; data_search = res_search.getBody().getData();\n            System.out.println(data_search.size());\n            System.out.println(data_search.get(0).getCidx());\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n\n        return &quot;settings\/menu\/index&quot;;\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>ResponseEntity \uc5d0 Generic type \uc0ac\uc6a9\ud558\uae30 Generic type @Getter @NoArgsConstructor public class MenusSaveRequestDto implements Serializable { private Integer pidx; private String menuName; private String useyn; @Builder public MenusSaveRequestDto(Integer pidx, String menuName, String useyn) { this.pidx = pidx; this.menuName = menuName; this.useyn = useyn; } @Builder public MenusSaveRequestDto(Integer pidx, String menuName) { this.pidx = pidx; this.menuName =\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=1476\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1476","post","type-post","status-publish","format-standard","hentry","category-spring-boot-2-1"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1476"}],"version-history":[{"count":2,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1476\/revisions"}],"predecessor-version":[{"id":1478,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1476\/revisions\/1478"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}