rest controller practice : open api 사용하기

This commit is contained in:
haerong22
2021-03-19 16:15:32 +09:00
parent 5f994cb87f
commit 6abc60ae3f
11 changed files with 796 additions and 5023 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,41 +0,0 @@
package com.example.restcontroller.extra;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
@RestController
@RequiredArgsConstructor
public class ApiExtraController {
@GetMapping("/api/extra/pharmacy")
public String chapter4_4() {
String apiKey = "JCkqoWYEf9zq0vRVR1TA8Nj6QUIl96TFQZwLnzlr32vbYPx7rJaZvCvq9box6J5WwxpNe5NSKoNzYenwdcXQDA%3D%3D";
String url = "http://apis.data.go.kr/B552657/ErmctInsttInfoInqireService/getParmacyListInfoInqire?serviceKey=%s&pageNo=1&numOfRows=10";
String apiResult = "";
try {
URI uri = new URI(String.format(url, apiKey));
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String result = restTemplate.getForObject(uri, String.class);
apiResult = result;
} catch (URISyntaxException e) {
e.printStackTrace();
}
return apiResult;
}
}

View File

@@ -0,0 +1,78 @@
package com.example.restcontroller.extra.controller;
import com.example.restcontroller.common.model.ResponseResult;
import com.example.restcontroller.extra.model.OpenApiResult;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
@RestController
@RequiredArgsConstructor
public class ApiExtraController {
@GetMapping("/api/extra/pharmacy/string")
public String chapter4_4() {
String apiKey = "JCkqoWYEf9zq0vRVR1TA8Nj6QUIl96TFQZwLnzlr32vbYPx7rJaZvCvq9box6J5WwxpNe5NSKoNzYenwdcXQDA%3D%3D";
String url = "http://apis.data.go.kr/B552657/ErmctInsttInfoInqireService/getParmacyListInfoInqire?serviceKey=%s&pageNo=1&numOfRows=10";
String apiResult = "";
try {
URI uri = new URI(String.format(url, apiKey));
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String result = restTemplate.getForObject(uri, String.class);
apiResult = result;
} catch (URISyntaxException e) {
e.printStackTrace();
}
return apiResult;
}
@GetMapping("/api/extra/pharmacy")
public ResponseEntity<?> chapter4_5() {
String apiKey = "JCkqoWYEf9zq0vRVR1TA8Nj6QUIl96TFQZwLnzlr32vbYPx7rJaZvCvq9box6J5WwxpNe5NSKoNzYenwdcXQDA%3D%3D";
String url = "http://apis.data.go.kr/B552657/ErmctInsttInfoInqireService/getParmacyListInfoInqire?serviceKey=%s&pageNo=1&numOfRows=10";
String apiResult = "";
try {
URI uri = new URI(String.format(url, apiKey));
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String result = restTemplate.getForObject(uri, String.class);
apiResult = result;
} catch (URISyntaxException e) {
e.printStackTrace();
}
OpenApiResult jsonResult = null;
ObjectMapper objectMapper = new ObjectMapper();
try {
jsonResult = objectMapper.readValue(apiResult, OpenApiResult.class);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return ResponseResult.success(jsonResult);
}
}

View File

@@ -0,0 +1,15 @@
package com.example.restcontroller.extra.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OpenApiResult {
private OpenApiResultResponse response;
}

View File

@@ -0,0 +1,16 @@
package com.example.restcontroller.extra.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OpenApiResultResponse {
private OpenApiResultResponseHeader header;
private OpenApiResultResponseBody body;
}

View File

@@ -0,0 +1,19 @@
package com.example.restcontroller.extra.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OpenApiResultResponseBody {
private OpenApiResultResponseBodyItems items;
private Integer numOfRows;
private Integer pageNo;
private Integer totalCount;
}

View File

@@ -0,0 +1,17 @@
package com.example.restcontroller.extra.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OpenApiResultResponseBodyItems {
List<OpenApiResultResponseBodyItemsItem> item;
}

View File

@@ -0,0 +1,38 @@
package com.example.restcontroller.extra.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OpenApiResultResponseBodyItemsItem {
private String dutyAddr;
private String dutyName;
private String dutyTel1;
private Integer dutyTime1c;
private String dutyTime1s;
private Integer dutyTime2c;
private String dutyTime2s;
private Integer dutyTime3c;
private String dutyTime3s;
private Integer dutyTime4c;
private String dutyTime4s;
private Integer dutyTime5c;
private String dutyTime5s;
private Integer dutyTime6c;
private String dutyTime6s;
private String hpid;
private Integer postCdn1;
private String postCdn2;
private Integer rnum;
private Double wgs84Lat;
private Double wgs84Lon;
private String dutyMapimg;
private String dutyEtc;
private Integer dutyTime8c;
private String dutyTime8s;
}

View File

@@ -0,0 +1,16 @@
package com.example.restcontroller.extra.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OpenApiResultResponseHeader {
private String resultCode;
private String resultMsg;
}