국토교통부_아파트매매 실거래 상세 자료

요청 메시지 명세

| 항목명(영문) | 항목명(국문) | 항목 크기 | 항목 구분* | 샘플 데이터 | 항목설명 | | --- | --- | --- | --- | --- | --- | | serviceKey | 인증키 | 100 | 1 | 인증키 (URL Encode) | 공공데이터포털에서 발급받은 인증키 | | pageNo | 페이지번호 | 4 | 0 | 1 | 페이지번호 | | numOfRows | 한 페이지 결과 수 | 4 | 0 | 10 | 한 페이지 결과 수 | | LAWD_CD | 지역코드 | 5 | 1 | 11110 | 각 지역별 코드 행정표준코드관리시스템(www.code.go.kr)의 법정동코드 10자리 중 앞 5자리 | | DEAL_YMD | 계약월 | 6 | 1 | 201512 | 실거래 자료의 계약년월(6자리) |

응답 메시지 명세

항목명(국문) 항목설명 샘플데이터
결과코드 결과코드 00
결과메세지 결과메세지 NORMAL SERVICE.
한 페이지 결과 수 한 페이지 결과 수 10
페이지 번호 페이지 번호 1
전체 결과 수 전체 결과 수 3
거래금액 거래금액(만원) 82,500
건축년도 건축년도 2008
계약년도 2015
도로명 도로명 사직로8길
도로명건물본번호코드 도로명건물본번 00004
도로명건물부번호코드 도로명건물부번 00000
도로명시군구코드 도로명시군구코드 11110
도로명일련번호코드 도로명코드 03
도로명지상지하코드 도로명지상지하코드 0
도로명코드 도로명코드 4100135
법정동 법정동 사직동
법정동본번코드 법정동본번코드 0009
법정동부번코드 법정동부번코드 0000
법정동시군구코드 대상물건의 시군구코드 11110
법정동읍면동코드 대상물건의 읍면동코드 11500
법정동지번코드 법정동지번코드 1
아파트 아파트명 광화문풍림스페이스본(9-0)
계약월 12
1
일련번호 일련번호 11110-2203
전용면적 전용면적(㎡) 94.51
지번 지번 9
11
해제여부 해제여부 O
해제사유발생일 해제사유발생일 21.01.27
거래유형 중개 및 직거래 여부 중개거래
중개업소주소 시군구 단위 서울 서초구

API 요청 후 필터링하는 과정

// LAWD_CD_Code에서 현재 페이지 주소에 해당하는 지역 코드 찾기
  const LAWD_CD: any = LAWD_CD_Code.find(
    (item: string) => item.split(':')[1] === detail.HSSPLY_ADRES.split(' ')[1],
  );
  1. 디테일 페이지의 해당 분양 공고 데이터에서 ‘시군구’ 주소만 추출한 후 모든 지역코드를 담고 있는 배열에 find 메서드를 이용해서 일치하는 지역코드를 찾는다.
// 특정 지역의 아파트 매매 실거래가 정보를 가져옴
  const getAPTRealPriceList = async () => {
    const data = await axios
      .get(
        `/api/APTRealPrice?numOfRows=1000&LAWD_CD=${
          LAWD_CD?.split(':')[0]
        }&DEAL_YMD=202302&serviceKey=${SERVICE_KEY}`,
      )
      .then((res) => res.data.response.body.items.item);
    return data;
  };
  1. 1번에서 찾은 지역코드를 이용해서 아파트 매매 실거래가를 가져오기 위한 API 호출을 한다.
const { data: APTRealPriceList, refetch: APTRealPriceRefetch } = useQuery(
    'APTRealPriceList',
    getAPTRealPriceList,
    {
      enabled: !!LAWD_CD, // LAWD_CD이 있는 경우에만 useQuery를 실행함
      // 지역코드로 불러온 아파트 매매 실거래가 리스트에서 '읍면동' 기준으로 필터링하기
      onSuccess: (APTRealPriceList) => {
        setDongList(
          APTRealPriceList?.filter(
            (item: any) =>
              (item.법정동.split(' ')[0] === ''
                ? item.법정동.split(' ')[1]
                : item.법정동.split(' ')[0]) ===
              (detail.HSSPLY_ADRES.split('(').length > 1
                ? detail.HSSPLY_ADRES.split('(')[1].slice(0, 3)
                : detail.HSSPLY_ADRES.split(' ')[2]),
          ),
        );
      },
    },
  );