불필요 main api 정리
parent
3d1f8683a4
commit
cb5dd5f25f
|
|
@ -1,5 +1,4 @@
|
|||
import os
|
||||
from typing import Optional
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
|
@ -7,7 +6,7 @@ from fastapi.responses import FileResponse
|
|||
from dotenv import load_dotenv
|
||||
import uvicorn
|
||||
|
||||
from models import RealEstateQuery, ParsedRealEstate
|
||||
from models import RealEstateQuery
|
||||
from openai_parser import OpenAIParser
|
||||
from public_data_api import PublicDataAPIClient
|
||||
|
||||
|
|
@ -39,40 +38,6 @@ async def serve_index():
|
|||
"""메인 페이지 제공"""
|
||||
return FileResponse("../frontend/index.html")
|
||||
|
||||
@app.post("/api/parse", response_model=ParsedRealEstate)
|
||||
async def parse_real_estate(query: RealEstateQuery):
|
||||
"""자연어 입력을 파싱하여 부동산 정보 추출"""
|
||||
if not parser:
|
||||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail="OpenAI API key not configured. Please set OPENAI_API_KEY in .env file"
|
||||
)
|
||||
|
||||
try:
|
||||
result = await parser.parse_real_estate_query(query.text)
|
||||
return result
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@app.get("/api/real-estate-data")
|
||||
async def get_real_estate_listings(
|
||||
property_type: str = "아파트",
|
||||
transaction_type: str = "매매",
|
||||
region_code: str = "11680",
|
||||
deal_ymd: Optional[str] = None
|
||||
):
|
||||
"""공공데이터 API를 통한 실거래가 조회"""
|
||||
try:
|
||||
data = public_data_client.get_real_estate_data(
|
||||
property_type=property_type,
|
||||
transaction_type=transaction_type,
|
||||
region_code=region_code,
|
||||
deal_ymd=deal_ymd
|
||||
)
|
||||
return {"data": data, "count": len(data)}
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@app.post("/api/search")
|
||||
async def search_real_estate(query: RealEstateQuery):
|
||||
"""자연어 검색 후 실거래가 데이터 조회"""
|
||||
|
|
@ -94,7 +59,6 @@ async def search_real_estate(query: RealEstateQuery):
|
|||
transaction_type=parsed.transaction_type,
|
||||
region_code=parsed.region_code
|
||||
)
|
||||
print(listings)
|
||||
|
||||
return {
|
||||
"parsed": parsed,
|
||||
|
|
|
|||
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"종로구": "11110",
|
||||
"중구": "11140",
|
||||
"용산구": "11170",
|
||||
"성동구": "11200",
|
||||
"광진구": "11215",
|
||||
"동대문구": "11230",
|
||||
"중랑구": "11260",
|
||||
"성북구": "11290",
|
||||
"강북구": "11305",
|
||||
"도봉구": "11320",
|
||||
"노원구": "11350",
|
||||
"은평구": "11380",
|
||||
"서대문구": "11410",
|
||||
"마포구": "11440",
|
||||
"양천구": "11470",
|
||||
"강서구": "11500",
|
||||
"구로구": "11530",
|
||||
"금천구": "11545",
|
||||
"영등포구": "11560",
|
||||
"동작구": "11590",
|
||||
"관악구": "11620",
|
||||
"서초구": "11650",
|
||||
"강남구": "11680",
|
||||
"송파구": "11710",
|
||||
"강동구": "11740",
|
||||
"수원시": "41110",
|
||||
"성남시": "41130",
|
||||
"의정부시": "41150",
|
||||
"안양시": "41170",
|
||||
"부천시": "41190",
|
||||
"광명시": "41210",
|
||||
"평택시": "41220",
|
||||
"안산시": "41270",
|
||||
"고양시": "41280",
|
||||
"과천시": "41290",
|
||||
"구리시": "41310",
|
||||
"남양주시": "41360",
|
||||
"오산시": "41370",
|
||||
"시흥시": "41390",
|
||||
"군포시": "41410",
|
||||
"의왕시": "41430",
|
||||
"하남시": "41450",
|
||||
"용인시": "41460",
|
||||
"파주시": "41480",
|
||||
"이천시": "41500",
|
||||
"안성시": "41550",
|
||||
"김포시": "41570",
|
||||
"화성시": "41590",
|
||||
"광주시": "41610",
|
||||
"양주시": "41630",
|
||||
"포천시": "41650",
|
||||
"여주시": "41670",
|
||||
"분당구": "41135",
|
||||
"수정구": "41131",
|
||||
"중원구": "41133",
|
||||
"장안구": "41111",
|
||||
"권선구": "41113",
|
||||
"팔달구": "41115",
|
||||
"영통구": "41117",
|
||||
"만안구": "41171",
|
||||
"동안구": "41173",
|
||||
"상록구": "41271",
|
||||
"단원구": "41273",
|
||||
"덕양구": "41281",
|
||||
"일산동구": "41285",
|
||||
"일산서구": "41287",
|
||||
"처인구": "41461",
|
||||
"기흥구": "41463",
|
||||
"수지구": "41465"
|
||||
}
|
||||
|
|
@ -47,6 +47,26 @@
|
|||
- docs/project_plan.md 업데이트 (API 가이드 문서 추가)
|
||||
- 웹 검색 및 브라우저를 통한 실제 API 정보 수집
|
||||
|
||||
[2025-08-19 15:12:44] 사용하지 않는 API 엔드포인트 제거 작업 완료
|
||||
- backend/main.py 정리
|
||||
- /api/parse 엔드포인트 제거 (사용 안함)
|
||||
- /api/real-estate-data 엔드포인트 제거 (사용 안함)
|
||||
- /api/search 엔드포인트만 유지 (메인 API)
|
||||
- 불필요한 import 제거 (Optional, ParsedRealEstate)
|
||||
- 디버그용 print 문 제거
|
||||
- data/region_codes_simple.json 삭제 (사용 안함)
|
||||
- docs/project_plan.md 업데이트
|
||||
- 폴더 구조 현행화
|
||||
- API 엔드포인트 섹션 추가
|
||||
- 작업 단계 업데이트
|
||||
- 최종 API 구조:
|
||||
- GET / : 메인 페이지
|
||||
- POST /api/search : 자연어 검색 + 실거래가 조회
|
||||
- GET /static/* : 정적 파일
|
||||
|
||||
[2025-08-19 15:10:35] 사용하지 않는 API 엔드포인트 제거 작업 시작
|
||||
- 불필요한 엔드포인트 정리
|
||||
|
||||
[2025-08-19 14:25:44] 프론트엔드 실거래가 표시 기능 변경 완료
|
||||
- frontend/script.js 수정
|
||||
- /api/parse에서 /api/search로 엔드포인트 변경
|
||||
|
|
|
|||
|
|
@ -14,18 +14,19 @@
|
|||
C:\o2o\RealEstateSearch\
|
||||
├── docs/
|
||||
│ ├── project_plan.md
|
||||
│ └── project_logs.txt
|
||||
│ ├── project_logs.txt
|
||||
│ └── api_guide.md
|
||||
├── backend/
|
||||
│ ├── main.py (FastAPI 서버)
|
||||
│ ├── openai_parser.py (OpenAI 파싱 로직)
|
||||
│ └── models.py (데이터 모델)
|
||||
│ ├── openai_parser.py (OpenAI 파싱 + 지역코드 변환)
|
||||
│ ├── models.py (데이터 모델)
|
||||
│ └── public_data_api.py (공공데이터 API 클라이언트)
|
||||
├── frontend/
|
||||
│ ├── index.html
|
||||
│ ├── style.css
|
||||
│ └── script.js
|
||||
├── data/
|
||||
│ ├── region_codes.json (전체 시군구 코드)
|
||||
│ └── region_codes_simple.json (간략 버전)
|
||||
│ └── region_codes.json (시군구 코드)
|
||||
├── requirements.txt
|
||||
├── .env (API 키 저장)
|
||||
├── .gitignore (Git 제외 파일)
|
||||
|
|
@ -39,3 +40,20 @@ C:\o2o\RealEstateSearch\
|
|||
- [x] OpenAI 파싱 로직 구현
|
||||
- [x] 프론트엔드 개발
|
||||
- [x] README.md 업데이트
|
||||
- [x] 지역 코드 변환 기능
|
||||
- [x] 공공데이터 API 연동
|
||||
- [x] 실거래가 표시 UI
|
||||
- [x] 불필요한 코드 정리
|
||||
|
||||
## API 엔드포인트
|
||||
|
||||
### 1. GET `/`
|
||||
- 메인 페이지 (index.html) 제공
|
||||
|
||||
### 2. POST `/api/search`
|
||||
- 자연어 검색 및 실거래가 조회
|
||||
- 요청: `{"text": "강남 아파트 전세"}`
|
||||
- 응답: 파싱 결과 + 실거래가 목록
|
||||
|
||||
### 3. GET `/static/*`
|
||||
- CSS, JS 등 정적 파일 제공
|
||||
|
|
|
|||
Loading…
Reference in New Issue