-
2022.07.05 사이드 프로젝트에 OpenApi 연결Side Project 2022. 7. 5. 18:51반응형
사이드 프로젝트(ChargerPin project)
프로젝트 진행 중입니다.
구현할 기능들
회원가입/로그인(제작 완료)전기차 충전소 검색(충전소 위치로 검색 기능 완료)- 전기차 충전소 조회
- 전기차 충전소 즐겨찾기
- 즐겨찾기 조회
- 즐겨찾기 삭제
- 전기차 충전소 상세조회
오늘 구현한 기능
오늘은 전기차 충전소를 위치로 검색하는 기능을 구현하였습니다.
Spring으로 다른 Api에 요청해보는 게 처음이어서 여러 자료를 찾고 그 자료에 있는 방식 중에 지금 제게 맞는 방식으로 조금씩 변경하여 구현하였습니다. (RestTemplate 방식)
다른 방식도 있었지만 RestTemplate가 제일 나아 보였습니다.
그리고 OpenApi의 서비스 키에 특수문자가 포함되어있는데 URIComponentsBuilder에서 /(Slash)만 인코딩 안 하는 문제가 있어서
그냥 기본 String에 파라미터를 모두 붙여서 URI로 만들어주어서 Api에 요청하였습니다.
String url = "http://openapi.kepco.co.kr/service/EvInfoServiceV2/getEvSearchList?ServiceKey=${서비스키}"+"&pageNo=1&numOfRows=10"; url+="&addr=서초구 우면동".replace(" ", "%20"); try { uri = new URI(url); } catch (URISyntaxException e) { e.printStackTrace(); }
결과
{ "response": { "header": { "resultCode": "00", "resultMsg": "NORMAL SERVICE." }, "body": { "items": { "item": { "addr": "서울특별시 서초구 우면동 763 4층 주차장", "chargeTp": 2, "cpId": 5894, "cpNm": "급속01", "cpStat": 2, "cpTp": 10, "csId": 2052, "csNm": "남서울농협 하나로마트 우면점", "lat": 37.45685749231517, "longi": 127.01585735496195, "statUpdateDatetime": "2022-07-05 18:35:00" } }, "numOfRows": 10, "pageNo": 1, "totalCount": 1 } } }
다음 구현할 기능
다음으로는 나머지 전기차 충전소 검색 기능을 구현해야 합니다.
이제 남은 검색 기능은 이렇습니다.
- 충전소의 이름으로 검색
- 충전소 고유 ID로 검색
마치며
오늘은 URI 인코딩, 디코딩 문제로 너무 시간도 많이 잡아먹어서 힘들었고, 다음에는 인코딩, 디코딩 문제가 다신 안 일어났으면 좋겠다는 생각을 하게 만든 하루였습니다.
그래도 계속 사이드 프로젝트가 진행이 된다는 게 되게 기분이 좋네요 😇
저는 아직도 부족하니까 앞으로도 열심히 하겠습니다.
Github
pokoed(박종연)
반응형'Side Project' 카테고리의 다른 글
2022.07.11 사이드 프로젝트(ChargerPin) 즐겨찾기 기능 완성 (0) 2022.07.11 2022.07.10 사이드 프로젝트(ChargerPin) 컨트롤러, 서비스 제작 (0) 2022.07.11 2022.07.08 사이드 프로젝트(ChargerPin) 즐겨찾기 기능 구현 준비 (0) 2022.07.08 2022.07.07 사이드 프로젝트(ChargerPin) 검색 기능 구현 (0) 2022.07.07 2022.06.29 사이드 프로젝트 제작 (0) 2022.06.29