54일차 항해일지

2021. 11. 5. 20:44항해99/TIL

728x90

오늘 한 일

1. Api 제작 별자리 사진과 설명 api 만들기

제작할 api

{
    "code" : 200,
    "msg" : "성공",
    "data" : {
        "starImg" : "/image.jpg",      
        "starName" : "사자자리",
        "comment" : "어쩌구저쩌구"
    }
}

1. 이미지 저장하기

  • 일단 후에 S3 서버에 이미지 파일을 올릴 거지만 아직 S3 서버를 만들지 못했으니
  • 1차적으로 백엔드 서버에서 띄울 수 있도록 static/image/의 하위 폴더에 이미지를 저장하였다.

2. DB에 넣기

위는 웹페이지에서 유저가 제작하는 것이 아닌, 개발자가 제공하는 사진임으로 DB에 저장하여 관리하였다.

  • star_img의 행은 실제로 서버에 사진이 들어있는 경로이다.

3. ResponseDto를 통해서 api 제작하기

    public StarPhotoDto getStarPhoto() {
        List<String> currentTime = Timestamped.getCurrentTime();    //현재 년월일 가져오기
        String month = currentTime.get(2);        //월 MM 가져오기
        log.info("month = {}", month);

        StarInfo starInfo = starInfoRepository.findByMonth(month);
        StarPhotoDto starPhotoDto = new StarPhotoDto(
                starInfo.getStarImg(),
                starInfo.getStarName(),
                starInfo.getComment()
        );

        return starPhotoDto;
    }
}
  • 해당 api의 서비스 계층의 내용이다.
  • 본 의도대로 현재 월에 관측할 수 있는 별자리를 찾아서 가져온 뒤
  • response dto에 담아서 저장한다.

2. 미세먼지를 가져오는 api에서의 예외처리 추가하기

 for(int temp = 0; temp < nList.getLength(); temp++){
            Node nNode = nList.item(temp);
            if(nNode.getNodeType() == Node.ELEMENT_NODE) {
                Element eElement = (Element) nNode;
                String pm10Value = getTagValue("pm10Value", eElement);
                if( pm10Value == null){        //고장으로 관측 값이 없을 때 다음 구역의 값을 가져오게 한다.
                    continue;
                }
                if( pm10Value.equals("-")){    //점검으로 관측 값이 없을 때 다음 구역의 값을 가져오게 한다.
                    continue;
                }
                DustApiDto newDustApiDto = new DustApiDto(getTagValue("pm10Value", eElement));
                log.info("dust = {}", newDustApiDto.getPm10Value());
                return newDustApiDto;
            }
        }
  • 서울 지방으로 검색 시
  • 서울 여러 개의 관측소 중에서 1개의 값을 기존 코드에서 가져왓다.
  • 하지만 해당 관측소가 점검 혹은 고장이면 값으 "-" 이거나 그냥 null 값이 뜬다.
  • 이를 해결하기 위해서 if 문으로 예외 처리를 해주었다.

'항해99 > TIL' 카테고리의 다른 글

58일차 항해일지  (0) 2021.11.09
53일차 항해일지  (0) 2021.11.04
52일차 항해일지  (0) 2021.11.04
51일차 항해일지(gps to address, address to gps)  (0) 2021.11.04
50일차 항해일지  (0) 2021.11.02