BackEnd API Document : PRODUCT SYSTEM (KO_KR)
작성자 : LimeCake
모든 REQUEST는 POST 방식을 전제로 한다.
개발 단계에서는 GET 방식으로 테스트를 위한 접근도 가능하다.
모든 RESULT는 JSONObject 로 반환된다.
만일 JSONObject로 파싱 시 exception catch 될 경우 서버 에러로 간주한다.
string 인코딩은 UTF-8 을 기본으로 한다.
https://api.devx.kr/GotGan/v1/{API명}
물품 추가 API
관리자의 웹/앱을 통한 물품 추가
관리자의 바코드를 통한 물품 추가
session (string) [필수 인자]
세션 유저의 등급이 관리자 이상이어야 물품 추가가 가능하다.
products (JSONArray) [필수 인자]
추가할 물품들의 목록을 의미한다.
아래 상세 설명 참고.
products
는 아래 값들로 이루어진 JSONObject 의 Array 이다.
product_group (int) [필수 인자]
물품이 속하는 product_group_index
를 의미한다.
product_name (string) [선택 인자]
물품의 개별 이름을 의미한다.
값이 없을 경우 물품 그룹명을 그대로 가져온다.
product_status (int) [선택 인자]
물품의 상태 코드를 의미한다.
0 : 일반
1 : 사용불가
2 : 고장
3 : 수리중
값이 없을 경우 기본값인 0으로 입력된다.
product_owner (int) [선택 인자]
물품을 소유하는 유저그룹을 의미한다.
값이 없을 경우 0으로 입력된다.
product_barcode (int) [선택 인자]
물품의 바코드 번호를 의미한다.
값이 없을 경우 0으로 입력된다.
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 추가 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
products
가 JSON Array 형식임에 유의해야 한다.
물품을 수정하는 API
관리자가 개별 물품을 수정할 때
session (string) [필수 인자]
세션 유저의 등급이 관리자 이상이어야 물품 수정이 가능하다.
product_index (int) [필수 인자]
수정할 물품의 인덱스를 의미한다.
product_group (int) [선택 인자]
수정할 물품이 속할 그룹 인덱스를 의미한다.
product_name (string) [선택 인자]
수정할 물품의 개별 이름을 의미한다.
product_status (int) [선택 인자]
수정할 물품의 상태 코드를 의미한다.
0 : 일반
1 : 사용불가
2 : 고장
3 : 수리중
product_owner (int) [선택 인자]
수정할 물품을 소유하는 유저 그룹 인덱스를 의미한다.
product_barcode (int) [선택 인자]
수정할 물품의 바코드 값을 의미한다.
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 수정 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
product_index (int) [성공 시 반환 보장]
수정된 물품의 인덱스를 의미한다.
session
과 product_index
를 제외한 값이 모두 선택적 인자이다.
선택적 인자로 값을 받으면, 값을 받을 때마다 해당 값만 DB에서 갱신한다.
그렇기에, 수정하지 않는 기존과 동일한 다른 인자들을 서버로 보내게 되면 무의미한 부하가 생긴다.
물품을 삭제하는 API
관리자가 물품을 삭제
session (string) [필수 인자]
세션 유저의 등급이 관리자 이상이어야 물품 삭제가 가능하다.
product_index (int) [필수 인자]
삭제할 물품의 인덱스를 의미한다.
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 삭제 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
물품 목록 API
물품 개별 정보를 가져오고자 할 때
물품 전체 정보를 가져오고자 할 때
특정 종류의 물품 정보를 가져오고자 할 때
바코드를 통하여 해당 물품 정보를 가져오고자 할 때
session (string) [필수 인자]
세션 인증을 거쳐야 조회가 가능하다.
product_index (int) [선택 인자]
검색할 물품의 인덱스를 의미한다.
product_barcode (int) [선택 인자]
검색할 물품의 바코드 번호를 의미한다.
product_group (int) [선택 인자]
검색할 물품의 물품 그룹 번호를 의미한다.
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 검색 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
products (JSONArray) [성공 시 반환 보장]
검색한 물품들의 목록을 의미한다.
아래 상세 설명 참고.
groups (JSONArray) [성공 시 반환 보장]
물품 그룹의 모든 목록을 의미한다.
아래 상세 설명 참고.
products
는 아래 값들로 이루어진 JSONObject 의 Array 이다.
product_index (int) [반환 보장]
물품의 인덱스를 의미한다.
product_group_index (int) [반환 보장]
물품이 속한 그룹 인덱스를 의미한다.
product_group_name (string) [반환 보장]
물품이 속한 그룹의 그룹명을 의미한다.
만일 그룹명이 없거나 잘못된 그룹 인덱스일 경우 빈 값이 반환된다.
product_group_priority (int) [반환 보장]
물품이 속한 그룹의 중요도를 의미한다.
0 : 일반 재고
1 : 중요 재고
2 : 귀중 재고
product_name (string) [반환 보장]
물품의 개별 이름을 의미한다.
product_status (int) [반환 보장]
물품의 상태 코드를 의미한다.
0 : 일반
1 : 사용불가
2 : 고장
3 : 수리중
product_owner_index (int) [반환 보장]
물품을 소유한 유저 그룹의 인덱스를 의미한다.
product_owner_name (string) [반환 보장]
물품을 소유한 유저 그룹의 그룹명을 의미한다.
만일 그룹명이 없거나 잘못된 그룹 인덱스일 경우 빈 값이 반환된다.
product_rent_index (int) [반환 보장]
물품의 대여 인덱스를 의미한다.
product_rent_user_index (int) [NULL 가능성 있음]
물품이 대여 중이라면 대여한 유저 인덱스를 의미한다.
product_rent_user_name (string) [NULL 가능성 있음]
물품이 대여 중이라면 대여한 유저 이름을 의미한다.
product_rent_user_id (string) [NULL 가능성 있음]
물품이 대여 중이라면 대여한 유저 아이디를 의미한다.
product_rent_status (int) [NULL 가능성 있음]
물품이 대여 중이라면 대여 상태 코드를 의미한다.
0 : 완료됨
1 : 대여신청됨
2 : 대여중
product_rent_time_start (string) [NULL 가능성 있음]
물품이 대여 중이라면 대여 시작한 날짜를 의미한다.
yyyy-MM-dd HH:mm:ss
형식이다.
product_rent_time_end (string) [NULL 가능성 있음]
물품이 대여 중이라면 대여 만료 날짜를 의미한다.
yyyy-MM-dd HH:mm:ss
형식이다.
product_barcode (int) [반환 보장]
물품의 바코드 번호를 의미한다.
product_created (string) [반환 보장]
물품이 생성된 시각을 의미한다.
yyyy-MM-dd HH:mm:ss
형식이다.
groups
는 아래 값들로 이루어진 JSONObject 의 Array 이다.
group_index (int) [반환 보장]
물품 그룹의 인덱스를 의미한다.
group_name (string) [반환 보장]
물품 그룹의 그룹명을 의미한다.
group_rentable (int) [반환 보장]
물품 그룹에 속한 물품들이 며칠동안 대여가 가능한지를 의미한다.
group_priority (int) [반환 보장]
물품 그룹의 중요도를 의미한다.
0 : 일반 재고
1 : 중요 재고
2 : 귀중 재고
전체 물품을 요청하는 경우 부하가 매우 큰 편이다.
클라이언트에서 효율적으로 캐싱이 필요하다.
물품 현황 개요 API
대시보드 등에서 물품 그룹별 상태 개수 현황을 요청할 때
session (string) [필수 인자]
세션 인증을 거쳐야 조회가 가능하다.
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 현황 검색 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
groups (JSONArray) [성공 시 반환 보장]
물품 그룹의 모든 현황 목록을 의미한다.
아래 상세 설명 참고.
groups
는 아래 값들로 이루어진 JSONObject 의 Array 이다.
group_index (int) [반환 보장]
물품 그룹의 인덱스를 의미한다.
group_name (string) [반환 보장]
물품 그룹의 그룹명을 의미한다.
group_rentable (int) [반환 보장]
물품 그룹에 속한 물품들이 며칠동안 대여가 가능한지를 의미한다.
group_priority (int) [반환 보장]
물품 그룹의 중요도를 의미한다.
0 : 일반 재고
1 : 중요 재고
2 : 귀중 재고
group_count_available (int) [반환 보장]
물품 그룹에서 현재 사용 가능한 물품 개수를 의미한다.
group_count_unavailable (int) [반환 보장]
물품 그룹에서 현재 사용 불가능한 물품 개수를 의미한다.
고장나거나 수리중인 물품을 포함하지 않는다.
group_count_broken (int) [반환 보장]
물품 그룹에서 현재 고장난 물품 개수를 의미한다.
group_count_repair (int) [반환 보장]
물품 그룹에서 현재 수리중인 물품 개수를 의미한다.
group_count_rent (int) [반환 보장]
물품 그룹에서 현재 대여중인 물품 개수를 의미한다.
사용 가능한 물품 개수나 기타 개수들과 완전히 독립적이다.
group_count_available
에서 group_count_rent
을 차감한 개수가 실제로 사용 가능한 개수이다.
물품 그룹을 추가하는 API
관리자가 물품 그룹을 추가
session (string) [필수 인자]
세션 유저의 등급이 관리자 이상이어야 물품 그룹 추가가 가능하다.
product_group_name (string) [필수 인자]
추가할 물품 그룹의 그룹명을 의미한다.
product_group_rentable (int) [필수 인자]
추가할 물품 그룹이 며칠동안 대여가 가능한지를 의미한다.
product_group_priority (int) [선택 인자]
추가할 물품 그룹의 중요도를 의미한다.
값이 없을 경우 0이 기본으로 입력된다.
0 : 일반 재고
1 : 중요 재고
2 : 귀중 재고
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 그룹 추가 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
product_group_index (int) [성공 시 반환 보장]
추가된 물품 그룹의 인덱스를 의미한다.
product_group_rentable
에 대여 불가능한 그룹일 시 0으로 전달한다.
물품 그룹을 수정하는 API
관리자가 물품 그룹을 수정
session (string) [필수 인자]
세션 유저의 등급이 관리자 이상이어야 물품 그룹 수정이 가능하다.
product_group_index (int) [필수 인자]
수정할 물품 그룹의 인덱스를 의미한다.
product_group_name (string) [선택 인자]
수정할 물품 그룹의 그룹명을 의미한다.
product_group_rentable (int) [선택 인자]
수정할 물품 그룹이 며칠동안 대여가 가능한지를 의미한다.
product_group_priority (int) [선택 인자]
수정할 물품 그룹의 중요도를 의미한다.
0 : 일반 재고
1 : 중요 재고
2 : 귀중 재고
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 그룹 수정 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.
product_group_index (int) [성공 시 반환 보장]
수정된 물품 그룹의 인덱스를 의미한다.
session
과 product_group_index
를 제외한 값이 모두 선택적 인자이다.
선택적 인자로 값을 받으면, 값을 받을 때마다 해당 값만 DB에서 갱신한다.
그렇기에, 수정하지 않는 기존과 동일한 다른 인자들을 서버로 보내게 되면 무의미한 부하가 생긴다.
물품 그룹 삭제 API
관리자가 물품 그룹을 삭제
session (string) [필수 인자]
세션 유저의 등급이 관리자 이상이어야 물품 그룹 삭제가 가능하다.
product_group_index (int) [필수 인자]
삭제할 물품 그룹의 인덱스를 의미한다.
result (int) [반환 보장]
처리 결과 코드를 의미한다.
0 : 성공
-1 : REQEUST 인자 에러
-2 : 서버 동작 에러
-3 : 유저 권한 없음
-4 : 물품 그룹 삭제 실패
error (string) [반환 보장]
result
가 0 이 아니면 해당 원인을 알려준다.