Django, djangoreatframework로 구축한 친환경 농가 API 개발
- 기존 운영서비스(스토어)의 Backend 개발
- 기능 구현을 위한 DB 생성 : 회원관리, 상품관리, 결재관리, 주문내역 등
- DB에 정보 입력, 수정, 조회, 삭제를 위한 REST API 개발
- 정보 입력, 수정 시 데이터 형식의 유효성을 검사
- REST API에서 벗어난 Param 또는 요청오류에 대한 응답처리
- 유저는 이용자, 관리자로 나누어져 있으며 상품 및 결재, 주문은 관리자만 입력, 수정, 삭제 가능, 이용자는 회원가입, 결재, 주문을 제외하고 조회 권한만 허용
erDiagram
PAYMENT{
product PRODUCT
user USER
price integer
delivery_fee integer
amount integer
payment_method METHOD
delivery_address string
created_at datetime
updated_at datetime
successed_at datetime
canceled_at datetime
deliveried_at datetime
}
PRODUCT{
thumbnail PHOTO
name string
description string
price integer
pre_sale_price integer
is_waiting boolean
is_best boolean
is_md boolean
stock integer
country string
delivery_method string
delivery_price integer
created_at datetime
updated_at datetime
}
USER{
id integer
user_id string
password string
user_name string
email string
address string
date_joined datetime
last_login datetime
is_superuser boolean
is_staff boolean
is_active boolean
}
USER ||--o{ PAYMENT : buy
PRODUCT ||--o{ PAYMENT : bought
- 결제 모델
id
: 프라이머리 키로 사용될 아이디product
: 상품user
: 이용자price
: 상품가격delivery_fee
: 배송비amount
: 최종결제금액 (상품가격 + 배송비)payment_method
: 결제수단delivery_address
: 배송지 주소 및 메모created_at
: 생성 시간updated_at
: 취소 시간successed_at
: 결제 성공 시간 (null이면 결제 실패)canceled_at
: 결제 취소 시간 (null이면 결제 유지 중)deliveried_at
: 배송 완료 시간 (null이면 배송 미완료)
- 제품 모델
thumbnail
: 썸네일name
: 상품명description
: 상품 설명price
: 가격pre_sale_price
: 세일 전 가격is_waiting
: 판매 대기 여부is_best
: 베스트 상품 여부is_md
: MD 상품 여부stock
: 재고country
: 원산지delivery_method
: 배송방법delivery_price
: 배송비
- 사용자 모델
id
: 프라이머리키로 사용될 아이디user_id
: 로그인 아이디password
: 암호화된 비밀번호user_name
: 사용자 이름email
: emailaddress
: 사용자 주소date_joined
: 회원가입 일last_login
: 마지막 로그인is_superuser
: 모든 권한 활성 여부is_staff
: admin 점속 가능 여부is_active
: 계정 활성 여부
App | Method | URL | Permission | Description |
---|---|---|---|---|
Products | GET | /api/v1/products/ | All | 상품을 불러옵니다. |
POST | Admin | 상품을 생성합니다. | ||
GET | /api/v1/products/{id} | All | 상품 하나를 불러옵니다. | |
PATCH | Admin | 상품을 수정합니다. | ||
DELETE | Admin | 상품을 삭제합니다. | ||
USERS | POST | /api/v1/users/ | All | 유저 회원가입 |
GET | Admin | 회원목록을 확인합니다. | ||
GET | /api/v1/users/{id} | All | 회원정보를 회원합니다. | |
PUT | Self | 회원 정보를 수정합니다. | ||
DELETE | Self | 회원 상태를 비활성화 합니다 | ||
Payment | GET | /api/v1/payments/ | All | 결재 내역을 불러옵니다. |
POST | Admin | 결재 내역을 생성합니다. | ||
GET | /api/v1/payments/{id} | All | 결재 내역 하나를 불러옵니다 | |
PATCH | Admin | 결재 내역을 수정합니다. | ||
DELETE | Admin | 결재 내역을 삭제합니다. | ||
Order | GET | /api/v1/orders/ | Admin | 주문 내역을 불러옵니다. |
POST | LoggedIn | 상품을 주문합니다. | ||
PATCH | /api/v1/orders/{id}/ | LoggedIn | 주문 상태를 변경합니다. |