🐼유수화🐼 | 🐱송윤주🐱 | 🐶현유경🐶 | 🐤양다연🐤 |
Server / Data / BE | AI / Data / BE | Infra / BE / FE | BE / FE |
bookstore (PK) | branch (SK) | latitude | longitude |
---|
- URL: BASE_URL/api/book/{책의 isbn 값}/bookstore
- Method:
GET
- 기능 소개: 책의 재고가 존재하는 서점들의 위치를 알려주는 기능
Content-Type: application/json
Name | Type | Description | Required |
---|---|---|---|
책의 { isbn 값 } | String | 책의 13자리 isbn 값 | Required |
{
"code": 200,
"message": "책의 재고 서점 리스트를 가져오는데 성공했습니다.",
"data": {
"isbn" : 9791140708116,
"title" : "아는 만큼 보이는 백엔드 개발 (한 권으로 보는 백엔드 로드맵과 커리어 가이드)",
"stockResult":{
"kyoboStockList":null,
"ypbookStockList":[
{
"type":"영풍문고",
"name":"용산아이파크몰점",
"stock":"3",
"latitude":"37.529128500148",
"longtitude":"126.9654885873"
}
],
"aladinStockList":[
{
"type":"알라딘",
"name":"강남점",
"stock":"있음",
"latitude":"37.5016428104731",
"longtitude":"127.026336096148"
},{
"type":"알라딘",
"name":"건대점",
"stock":"있음",
"latitude":"37.5410629132034",
"longtitude":"127.07085938264"
}
]
}
}
}
-
필요한 값이 없는 경우
{ "code": 400, "message": "isbn값이 없습니다.", "data": null }
-
isbn 값에 매칭되는 책이 없을 경우
{ "code": 404, "message": "없는 책입니다.", "data": null }
-
서버에러
{ "code": 500, "message": "서버 에러", "data": null }
1. 각 서점의 홈페이지에서 각 지점명과 주소 스크래핑
2. 주소를 카카오 API를 통해 위도, 경도 좌표로 변환
3. 수집한 정보를 csv 파일로 저장
4. csv 파일을 S3에 업로드
5. DynamoDB의 import from S3 기능 사용해 테이블 구축
6. API Gateway에서 요청이 들어오면 Lambda 실행
7. Lambda는 isbn 값을 이용해 서점의 홈페이지에서 책의 재고를 실시간으로 스크래핑