Car management API
차량 관리 API 설계
개요
한 자동차 판매 관리 시스템의 백엔드 API를 설계하고자 한다. 관리 대상은 차량이며, 각 차량은 다음의 속성을 가진다:
브랜드 (
brand
)모델명 (
model
)색상 (
color
)연비 (
gasEconomy
) – km/l추가 장비 목록 (
accessories
) – 문자열 리스트
다음 요구사항을 만족하는 REST API를 설계하라.
요구사항
차량 목록 조회 API
모든 차량 데이터를 JSON 형식으로 조회할 수 있어야 한다.
차량 필터링 및 정렬 API
차량 목록을 아래 조건으로 필터링할 수 있어야 한다:
브랜드 (
brand
)색상 (
color
)연비 범위 (
gasEconomy[min, max]
)특정 장비 포함 여부 (
accessories
리스트 중 일부 포함)
정렬 조건:
연비 기준 오름차순 / 내림차순
브랜드 이름 알파벳 순
필터 조건은 Query Parameter로 전달
차량 등록 API
새로운 차량 정보를 등록할 수 있어야 하며, 유효성 검증이 포함되어야 한다.
중복 차량은 등록되지 않도록 처리할 것 (
brand + model + color
조합)
차량 삭제 API
차량 ID 기준으로 삭제할 수 있어야 하며, 없는 ID 요청 시 적절한 에러를 반환해야 한다.
차량 상세 조회 API
특정 차량의 상세 정보를 차량 ID로 조회할 수 있어야 한다.
1. 엔드포인트
차량 목록 조회 API (GET) /cars
차량 필터링 및 정렬 API (GET) /cars?brand={brand}&color={color}&mingaseconomy={min}&maxgaseconomy={max}&includeacc={includeacc}&page={page}&size={size}&sort={sort}&type={type}
차량 등록 API (POST) /cars
차량 삭제 API (DELETE) /cars/{carsId}
차량 상세 조회 API (GET) /cars/{carsId}
차량 목록 조회 API (GET) /cars
차량 필터링 및 정렬 API (GET) /cars?brand={brand}&color={color}&mingaseconomy={min}&maxgaseconomy={max}&includeacc={includeacc}&page={page}&size={size}&sort={sort}&type={type}
차량 등록 API (POST) /cars
차량 삭제 API (DELETE) /cars/{carsId}
차량 상세 조회 API (GET) /cars/{carsId}
2. DB 스키마
car
car_id. BIGINT, PK.
brand_id. BIGINT, FK.
gas_economy. BIGINT.
color. VARCHAR(255)
brand
brand_id. BIGINT, PK
name. TEXT
accessories
accessory_id. BIGINT, PK
name. TEXT
description. TEXT
car_accessories
car_accessories_id. BIGINT, PK
car_id. BIGINT FK
accessories_id. BIGINT FK
3. 아키텍처
Server
사용자 요청 처리
DB 연동
MySql
데이터 저장
Redis
캐싱.
Last updated