#11. DTO

Inkyung·2022년 12월 5일
0

웹프레임워크

목록 보기
11/12
  • 보안 문제로 api key 파일 삭제하고 git 에 push → clone 받으면 다시 추가해줘야 함
    • resources에 [application-api-key.properties](http://application-api-key.properties) 파일 생성

naver client - search controller

{
	"lastBuildDate":"Thu, 24 Nov 2022 09:48:06 +0900",
	"total":1,
	"start":1,
	"display":1,
	"items":[                      // 검색된 데이터
		{
			"title":"롯데호텔서울 도림",
			"link":"https:\/\/www.lottehotel.com\/seoul-hotel\/ko\/dining\/restaurant-toh-lim.html",
			"category":"중식>중식당",
			"description":"",
			"telephone":"",
			"address":"서울특별시 중구 소공동 1",
			"roadAddress":"서울특별시 중구 을지로 30",
			"mapx":"310159",
			"mapy":"551942"
		}
	]
}

위에 통째로 받아온것 중에 원하는 부분 Parsing 해서 가져오기!

  1. naver-dto-SerchLocalRes 생성
  2. SearchRequestDto 생성
  3. NaverClient에 String → SearchLocalRes
  4. SearchService에 String → SearchRequestDto
    하고 return new SearchRequestDto();
  5. SearchController에 String → SearchRequestDto
  1. weather - dto - WeatherDtoRes
  2. dto - WeatherRequestDto
  3. WeatherClient에 String → WeatherDtoRes
  4. WeatherService. String → WeatherRequestDto
  5. WeatherController String → WeatherRequestDto

Weather

  • Weather는 좀 더 복잡…
{
	"coord": {
    "lon": 126.9778,
    "lat": 37.5683
  },
  "weather": [                     // 리스트
    {
      "id": 803,
      "main": "Clouds",
      "description": "broken clouds",
      "icon": "04d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 279.77,
    "feels_like": 279.77,
    "temp_min": 278.81,
    "temp_max": 282.84,
    "pressure": 1021,
    "humidity": 76
  },
  "visibility": 8000,
  "wind": {
    "speed": 0.51,
    "deg": 330
  },
  "clouds": {
    "all": 75
  },
  "dt": 1669250853,
  "sys": {
    "type": 1,
    "id": 8105,
    "country": "KR",
    "sunrise": 1669242053,
    "sunset": 1669277805
  },
  "timezone": 32400,
  "id": 1835848,
  "name": "Seoul",
  "cod": 200
}

안에 class 6개, 리스트 1개 있음

  • 해보기❗️❗️❗️ (화요일까지)

  • buildgradle dependencies에 runtimeOnly 'com.h2database:h2' ,

    implementation 'org.springframework.boot:spring-boot-starter-data-jpa’ 추가

  • properties에 spring.h2.console.enabled=true 추가

http://localhost:8080/h2-console

info로 돌려서 jdbc:h2:mem:28a555fc-e8ef-46c1-a351-22aa73322769 - 연결

 public String getCurrentWeatherWithGeo(Double lat, Double lon) {
        var weatherReq = new WeatherGeoReq();
        weatherReq.setLat(lat);
        weatherReq.setLon(lon);

        var weatherRes = weatherClient.getCurrentWeather(weatherReq);

        return weatherRes;    // 여기 해결 안돼서 잘라놓음.. weather service

    } 
}

0개의 댓글