Skip to content

fit-pin/fitpin_backend_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

247 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fitpin_backend_app

핏핀 앱 백엔드

API 목록

API 사용법

요청 메인 URL: https://fitpin.kro.kr/app-api

요청 URL 예시 items = https://fitpin.kro.kr/app-api/api/items

APP API

로그인 & 회원가입

로그인 및 회원가입

로그인, 회원가입 과정에서 필요한 API 목록입니다. 회원가입, 로그인, 기본정보 등록, 선호스타일과 체형분석 등록이 가능합니다


POST: 회원가입

POST: 회원가입

URL: /api/members/register

회원가입을 요청하는 API입니다. 이메일, 비밀번호, 이름 등을 받아 회원가입 처리를 수행합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/members/register

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
userPwd string required 유저의 비밀번호
userName string required 유저의 이름
userPwdConfirm string required 유저의 비밀번호 재확인

Response

  • Status 200 OK

    {
        "message": "회원가입 성공"
    }
  • Status 400 Bad Request (비밀번호와 비밀번호 확인 불일치)

    {
        "message": "비밀번호가 일치하지 않습니다."
    }
POST: 로그인

POST: 로그인

URL: /api/login

로그인 요청입니다. 이메일과 비밀번호를 이용해 로그인을 시도합니다, 로그인 성공 시 유저 정보를 반환합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/login

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
userPwd string required 유저의 비밀번호

Response

  • Status 200 OK

    {
        "userEmail": "test1",
        "userPwd": null,
        "userName": "테스트용1",
        "userNumber": null,
        "userNickname": null,
        "userAddr": null,
        "userGender": "남자",
        "userHeight": 180,
        "userWeight": 75,
        "userFit": null,
        "userCash": null
    }
  • Status 400 Bad Request (이메일 혹은 비밀번호 불일치)

    {
        "message": "이메일을 찾을 수 없습니다."
    }
    {
        "message": "비밀번호가 틀립니다."
    }
  • Status 500 Internal Server Error (서버 에러 발생 시)

    {
        "message": "예상치 못한 오류가 발생했습니다."
    }
POST: 회원탈퇴

POST: 회원탈퇴

URL: /api/members/delete_id

회원탈퇴 요청입니다. 이메일을 이용해 회원탈퇴를 시도합니다. 탈퇴 성공 시 성공 메시지를 반환합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/members/delete_id

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 탈퇴를 요청하는 유저의 이메일 주소

Response

  • Status 200 OK

    {
        "message": "회원탈퇴가 완료되었습니다."
    }
  • Status 400 Bad Request (유효하지 않은 이메일)

    {
        "message": "이메일을 찾을 수 없습니다."
    }
  • Status 500 Internal Server Error (서버 에러 발생 시)

    {
        "message": "회원탈퇴 중 오류가 발생했습니다."
    }
POST : 유저 기본 정보 업데이트

POST: 유저 기본정보 업데이트

URL: api/members/basicInfo/{userEmail}

경로 변수인 {userEmail} 부분에는 member 테이블의 userEmail 칼럼의 실제 값이 들어가야 합니다. 회원 가입 과정에 필요한 API입니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/members/basicInfo/testEmail

Request Body Parameters

파라미터 타입 필수 여부 설명
userGender string required 유저의 성별 ("남" 또는 "여")
userHeight number required 유저의 키 (cm)
userWeight number required 유저의 몸무게 (kg)
userFit string required 유저가 선호하는 핏 ("오버핏" 등)
style array required 선호 스타일 리스트

Style Array Object

파라미터 타입 필수 여부 설명
userEmail string required 선호 스타일을 업데이트할 유저의 이메일
preferStyle string required 유저 선호 스타일

Request Body 예시

{
    "userGender": "남",
    "userHeight": 174,
    "userWeight": 80,
    "userFit": "오버핏",
    "style": [
        {
            "userEmail": "test1",
            "preferStyle": "스트릿"
        },
        {
            "userEmail": "test1",
            "preferStyle": "빈티지"
        },
        {
            "userEmail": "test1",
            "preferStyle": "캐주얼"
        },
        {
            "userEmail": "test1",
            "preferStyle": "테일러"
        }
    ]
}

Response

  • Status 200 OK
{
    "message": "선호 스타일 등록 완료!"
}
  • Status 400 Bad Request (중복된 선호 스타일)
{
    "message": "중복된 선호 스타일: 스트릿"
}
POST: 선호 스타일 등록

POST: 선호 스타일 등록

URL : /api/userPreferStyle

선호스타일을 DB에 저장하는 API입니다.

한 유저가 같은 스타일을 선호스타일로 저장시 에러가 발생합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/userPreferStyle

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
preferStyle string required 선호 스타일

Request Body 예시

[
    {
        userEmail: "test1",
        preferStyle: "스트릿",
    },
    {
        userEmail: "test1",
        preferStyle: "빈티지",
    },
    {
        userEmail: "test1",
        preferStyle: "캐주얼",
    },
    {
        userEmail: "test1",
        preferStyle: "테일러",
    },
];

Response

  • Status 200 OK

    {
        "message": "선호 스타일 등록 완료: 스트릿, 빈티지, 캐주얼, 테일러"
    }

    Status 400 Bad Request (선호 스타일이 중복시)

    {
        "message": "중복된 선호 스타일 : 스트릿"
    }
POST : 체형분석 API 리턴값 저장.

POST : 체형분석 API 리턴값 저장

URL: /api/userForm

AR백엔드의 체형분석 API에서 반환된 Json구문을 저장하는 POST API입니다. 이미 등록되어 있는 userEmail 값으로 요청하면 데이터를 업데이트 합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/userForm

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
fileName string required AR 백엔드 이미지 이름
result array required AR 측정 결과

result Array Object

파라미터 타입 필수 여부 설명
armSize number required 측정 팔 길이
shoulderSize number required 측정 어깨 길이
bodySize number required 측정 몸 길이
legSize number required 측정 다리 길이

Request Body 예시

{
    "userEmail": "test@naver.com"
    "fileName": "2c49f715-67b8-40ec-86a2-b9d3e2875923.jpg",
    "result": {
        "armSize": 58.37,
        "shoulderSize": 32.64,
        "bodySize": 52.63,
        "legSize": 63.82
    }
}

Response

  • Status 200 OK
{
    "message": "체형 정보 저장 완료"
}

체형분석 API

GET: 체형분석 이미지 조회

GET: 체형분석

URL : /api/userForm/{userEmail}

AR서버에서 넘겨준 체형 분석 정보를 저장하는 테이블인 userForm 테이블에서 사진파일의 이름을 userEmail을 키값으로 하여 검색하는 API입니다.

` 요청 URL 예시: https://fitpin.kro.kr/app-api/api/userForm/test1

Response

  • Status 200 OK
{
    "fileName": "2c49f715-67b8-40ec-86a2-b9d3e2875923.jpg"
}
  • Status 500 Internal Server Error (서버 오류류)
{
    "message": "예상치 못한 오류가 발생했습니다."
}
GET: 체형분석 결과 조회

GET: 체형분석 결과 조회

URL : /api/userbodyinfo/{userEmail}

userEmail값을 경로변수로 요청시 체형분석 결과를 반환하는 GET 메서드입니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/userbodyinfo/test1

Response

  • Status 200 OK
{
    "userEmail": "test1",
    "userHeight": 174,
    "userWeight": 80,
    "armSize": 58.37,
    "shoulderSize": 32.64,
    "bodySize": 52.63,
    "legSize": 63.82
}

예외처리 추가하기

메인페이지

GET: 메인페이지 상품 목록 조회

GET : 메인페이지 상품 목록 조회

URL: api/items/list/{itemType}

GET /api/items/list/{itemType} : 상품목록을 조회하는 api입니다. item 테이블의 itemType(상품 종류)행을 경로변수로 받아서 경로변수와 일치하는 상품을 JSON Array 형태로 조회합니다.

반환되는 값은

itemKey (상품 고유번호)
itemName (상품 이름)
itemBrand (상품 브랜드)
itemPrice (상품 가격)
itemImgNames : (상품 이미지 URL)
averageBmi : (구매자 평균 BMI)

을 반환합니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/items/list/상의

결과:

[
    {
        itemKey: 1,
        itemName: "testItem1",
        itemBrand: "TEST",
        itemStyle: "캐주얼",
        itemPrice: 10000,
        itemImgNames: ["optimize.png"],
        averageBmi: null,
    },
    {
        itemKey: 2,
        itemName: "testItem2",
        itemBrand: "TEST",
        itemStyle: "캐주얼",
        itemPrice: 100000,
        itemImgNames: ["hood.jpg"],
        averageBmi: null,
    },
];
GET : 상품 이미지 서빙 (itemImg 디렉토리)

GET /api/img/imgserve/itemimg/{imageName}

이미지 이름을 경로 변수로 받아 itemImg 디렉토리 내의 이미지를 서빙하는 API입니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/img/imgserve/itemimg/optimize.png

Path Variables:

  • imageName: 이미지 파일명 (예: optimize.png)

Response:

  • Status 200 OK:
    • 성공적으로 이미지를 반환합니다.
    • 이미지의 MIME 타입에 따라 콘텐츠가 반환됩니다.
  • Status 404 Not Found:
    • 파일이 존재하지 않거나 읽을 수 없는 경우
    {
        "message": "파일을 찾을 수 없습니다."
    }
  • Status 403 Forbidden:
    • 경로가 허용된 범위 밖에 있는 경우
    {
        "message": "접근이 허용되지 않는 경로입니다."
    }
  • Status 500 Internal Server Error:
    • 서버 내부에서 파일을 읽는 중 오류가 발생한 경우
    {
        "message": "파일을 읽는 중 오류가 발생했습니다."
    }

핏 보관함

핏 보관함 API

핏 보관함과 관련된 API 목록입니다. 이미지를 업로드, 조회, 삭제할 수 있습니다.


GET : 핏보관함 이미지 서빙 (fitStorageImg 디렉토리)

GET /api/img/imgserve/fitstorageimg/{imageName}

이미지 이름을 경로 변수로 받아 fitStorageImg 디렉토리 내의 이미지를 서빙하는 API입니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/img/imgserve/fitstorageimg/anotherImage.png

Path Variables:

  • imageName: 이미지 파일명 (예: anotherImage.png)

Response:

  • Status 200 OK:
    • 성공적으로 이미지를 반환합니다.
    • 이미지의 MIME 타입에 따라 콘텐츠가 반환됩니다.
  • Status 404 Not Found:
    • 파일이 존재하지 않거나 읽을 수 없는 경우
    {
        "message": "파일을 찾을 수 없습니다."
    }
  • Status 403 Forbidden:
    • 경로가 허용된 범위 밖에 있는 경우
    {
        "message": "접근이 허용되지 않는 경로입니다."
    }
  • Status 500 Internal Server Error:
    • 서버 내부에서 파일을 읽는 중 오류가 발생한 경우
    {
        "message": "파일을 읽는 중 오류가 발생했습니다."
    }
이미지 업로드

POST: 핏 보관함 이미지 업로드

URL: /api/fitStorageImages/upload

유저의 이메일과 함께 이미지를 업로드하는 API입니다. multi-part form data 형식으로 이미지를 업로드하며, 서버에 이미지를 저장하고 그 경로를 데이터베이스에 저장합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fitStorageImages/upload

Form Data Parameters

파라미터 타입 필수 여부 설명
image file required 업로드할 이미지 파일
userEmail string required 유저의 이메일 주소

Response

  • Status 200 OK
    {
        "message": "이미지 업로드 성공: image.png"
    }
  • Status 500 Internal Server Error
    {
        "message": "이미지 업로드 실패: 에러 메시지"
    }
사진 삭제

DELETE: 핏 보관함 사진 삭제

URL: /api/fitStorageImages/delete/{imageName}

이미지의 이름을 받아 핏 보관함에 저장된 이미지를 삭제하는 API입니다. 유저의 이메일은 이미지 삭제 시에는 필요하지 않으며, 이미지 이름으로 이미지를 삭제합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fitStorageImages/delete/{imageName}

Path Parameters

파라미터 타입 필수 여부 설명
imageName string required 삭제할 이미지의 이름

Response

  • Status 200 OK
    {
        "message": "이미지 삭제 성공: /path/to/deleted/image.png"
    }
  • Status 404 Not Found
    {
        "message": "이미지를 찾을 수 없습니다: /path/to/nonexistent/image.png"
    }
  • Status 500 Internal Server Error
    {
        "message": "이미지 삭제 실패: 에러 메시지"
    }

핏 보관함 조회

GET: 핏 보관함 조회

URL: /api/fitStorageImages/user/{userEmail}

유저 이메일을 경로 변수로 받아 핏 보관함의 내용을 리스트를 조회하는 API입니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fitStorageImages/user/test1

Path Parameters

파라미터 타입 필수 여부 설명
userEmail string required 조회할 유저의 이메일 주소

Response

  • Status 200 OK
    [
      {
        "userEmail": "test1",
        "fitStorageImg": "testImg.png",
        "fitComment": null,
        "itemType": null,
        "itemBrand": null,
        "itemSize": null,
        "option": null
      },
      {
        "userEmail": "test1",
        "fitStorageImg": "testImg2.png"
        "fitComment": null,
        "itemType": null,
        "itemBrand": null,
        "itemSize": null,
        "option": null
      }
    ]
GET: 모든 코멘트 조회

GET: 모든 코멘트 조회

모든 코멘트를 조회하는 API입니다. fitStorage 테이블에 저장된 모든 코멘트를 조회하여 리스트로 반환합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fit_comment/get_fitcomment

Response

  • Status 200 OK
    [
        {
            "fitStorageKey": 1,
            "userEmail": "user1@example.com",
            "fitStorageImg": "image1.jpg",
            "fitComment": "This is a comment",
            "itemName": "Sample Item",
            "itemType": "Clothing",
            "itemBrand": "BrandX",
            "itemSize": "M",
            "option": "Fits well"
        },
        {
            "fitStorageKey": 2,
            "userEmail": "user2@example.com",
            "fitStorageImg": "image2.jpg",
            "fitComment": "Another comment",
            "itemName": "Another Item",
            "itemType": "Accessory",
            "itemBrand": "BrandY",
            "itemSize": "L",
            "option": "Fits tight"
        }
    ]
GET: 특정 코멘트 조회

GET: 특정 코멘트 조회

특정 코멘트를 조회하는 API입니다. fitStorageKey로 지정된 코멘트를 조회하여 반환합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fit_comment/get_fitcomment/{fitStorageKey}
    • {fitStorageKey}는 조회할 코멘트의 고유 키 값입니다.

Path Parameters

파라미터 타입 필수 여부 설명
fitStorageKey int required 조회할 코멘트의 키 값

Response

  • Status 200 OK

    {
        "fitStorageKey": 1,
        "userEmail": "user1@example.com",
        "fitStorageImg": "image1.jpg",
        "fitComment": "This is a comment",
        "itemName": "Sample Item",
        "itemType": "Clothing",
        "itemBrand": "BrandX",
        "itemSize": "M",
        "option": "Fits well"
    }
  • Status 404 Not Found (코멘트를 찾을 수 없는 경우)

    {
        "message": "해당 키에 대한 데이터를 찾을 수 없습니다."
    }
코멘트 저장

POST: 핏 보관함 코멘트 저장

URL: /api/fit_comment/save_comment

유저의 이메일과 이미지 이름을 기반으로 코멘트를 작성하는 API입니다. 유저가 특정 이미지에 대해 코멘트를 저장할 수 있습니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fit_comment/save_comment

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
fitStorageImg string required 이미지 이름
fitComment string required 작성할 코멘트
itemType string required 상품 종류ex)바지, 상의...
itemBrand string required 상품 브랜드
itemSize string required 상품 사이즈
option string required 선택 옵션ex)크다, 작다..

Response

  • Status 200 OK
    {
        "message": "코멘트 저장 성공"
    }
  • Status 404 Not Found
    {
        "message": "이미지를 찾을 수 없습니다"
    }
코멘트 수정

POST: 핏 보관함 코멘트 수정

URL: /api/fit_comment/update_comment

유저의 이메일과 이미지 이름을 기반으로 코멘트를 수정하는 API입니다. 이미 저장된 코멘트를 수정할 수 있습니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fit_comment/update_comment

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
fitStorageImg string required 이미지 이름
fitComment string required 작성할 코멘트
itemType string required 상품 종류ex)바지, 상의...
itemBrand string required 상품 브랜드
itemSize string required 상품 사이즈
option string required 선택 옵션ex)크다, 작다..

Response

  • Status 200 OK

    {
        "message": "코멘트 수정 성공"
    }
  • Status 404 Not Found

    {
        "message": "이미지를 찾을 수 없습니다"
    }
  • Status 500 Internal Server Error

{
    "message": "서버 에러가 발생했습니다."
}
코멘트 삭제

DELETE: 핏 보관함 코멘트 삭제

URL: /api/fit_comment/delete_comment

유저의 이메일과 이미지 이름을 기반으로 코멘트를 논리적으로 삭제하는 API입니다. 이 API는 코멘트가 삭제된 것으로 표시되도록 deleteStatustrue로 설정합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/fit_comment/delete_comment

Form Data Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저의 이메일 주소
fitStorageImg string required 이미지 이름

Response

  • Status 200 OK
    {
        "message": "코멘트 및 정보 삭제 성공"
    }
  • Status 404 Not Found
    {
        "message": "핏코멘트를 찾을 수 없습니다"
    }
  • Status 500 Internal Server Error
{
    "message": "서버 에러가 발생했습니다."
}

제품 상세 페이지

GET/api/item-info/{itemKey} : itemKey를 경로인자로 받아 상품의 상세 정보를 반환합니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/item-info/1

정상 응답시 위의 요소를 반환합니다.

{
    "itemKey": 1,
    "itemName": "테스트용 상품1(상의)",
    "itemBrand": "TEST",
    "itemType": "상의",
    "itemStyle": "캐주얼",
    "itemPrice": 10000,
    "itemContent": "테스트용 상의 상품",
    "itemImgNames": [
      "7sweatshirt.png"
    ],
    "itemTopInfo": [
      {
        "itemSize": "L",
        "itemHeight": 73,
        "itemShoulder": 64,
        "itemArm": null,
        "itemChest": 64,
        "itemSleeve": 59
      },
      {
        "itemSize": "M",
        "itemHeight": 70,
        "itemShoulder": 60,
        "itemArm": null,
        "itemChest": 60,
        "itemSleeve": 57
      }
    ],
    "itemBottomInfo": null
}
POST: 장바구니 저장

POST: 장바구니 저장

상품을 장바구니에 저장하는 API입니다. 상품 정보와 수량을 받아 장바구니에 저장하며, 수선 여부와 수선 정보도 함께 저장할 수 있습니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/cart/store

Request Body Parameters

파라미터 타입 필수 여부 설명
itemKey int required 상품 고유번호
userEmail string required 유저 이메일 주소
itemImgName string required 상품 이미지 파일명
itemName string required 상품 이름
itemSize string required 상품 사이즈
itemType string required 상품 유형 (상의/하의)
itemPrice int required 상품 가격
qty int required 상품 수량
pitStatus boolean optional 수선 여부
pitItemCart object (null 가능) optional 수선 정보 객체 (수선 시 사용)

pitItemCart 필드

파라미터 타입 설명
itemHeight float 상품 높이 (총장)
itemShoulder float 어깨너비
itemChest float 가슴단면
itemSleeve float 소매길이
frontrise float 앞 밑위
itemWaists float 허리단면
itemThighs float 허벅지단면
itemHemWidth float 밑단너비

Response

  • Status 200 OK

    {
        "message": "장바구니에 상품이 성공적으로 추가되었습니다."
    }
  • Status 404 Not Found

    {
        "message": "해당 상품을 찾을 수 없습니다."
    }
  • Status 500 Internal Server Error

    {
        "message": "장바구니에 상품 추가 중 오류가 발생했습니다."
    }
DELETE: 장바구니 삭제

DELETE: 장바구니 삭제

URL: /api/cart/delete

유저 이메일과 상품 고유번호를 받아 장바구니에서 해당 상품을 삭제하는 API입니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/cart/delete

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 유저 이메일 주소
itemKey int required 상품 고유번호

Response

  • Status 200 OK

    {
        "message": "장바구니에서 상품이 성공적으로 삭제되었습니다."
    }
  • Status 404 Not Found

    {
        "message": "해당 상품을 찾을 수 없습니다."
    }
  • Status 500 Internal Server Error

    {
        "message": "장바구니에서 상품 삭제 중 오류가 발생했습니다."
    }

장바구니 페이지

GET : 장바구니 목록 조회

GET/api/cart/get-store/{userEmail}

{userEmail}을 경로변수로 받아 장바구니 목록을 조회하는 API입니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/cart/get-store/test1

결과:

[
    {
        cartKey: 2,
        itemKey: 1,
        userEmail: "test1",
        itemImgName: "testImg",
        itemName: "테스트용 상품1(상의)",
        itemSize: "M",
        itemType: "상의",
        itemPrice: 10000,
        pit: 1,
        qty: 0,
    },
    {
        cartKey: 18,
        itemKey: 3,
        userEmail: "test1",
        itemImgName: "testImg",
        itemName: "테스트용 상품2",
        itemSize: "M",
        itemType: "하의",
        itemPrice: 10000,
        pit: 1,
        qty: 0,
    },
];
GET : 수선내역 조회

GET/api/pit/get/{cartKey}

장바구니 테이블의 {cartKey}을 경로변수로 받아 장바구니 목록을 조회하는 API입니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/pit/get/2

결과:

{
    "cartKey": 2,
    "itemKey": 1,
    "cartKey": 2,
    "itemSize": "M",
    "itemHeight": 35.0,
    "itemShoulder": 15.0,
    "itemArm": 9.0,
    "itemChest": 10.0,
    "itemSleeve": 14.0
}

검색 페이지

GET : 상품 검색

GET: 상품 검색

URL: /api/item-search/search/{searchWord}

특정 검색어를 기준으로 item 테이블에서 itemName, itemType, itemBrand, itemContent 필드에 해당하는 상품을 검색하는 API입니다. 검색어는 URL 경로 변수로 전달되며, 결과로는 해당 조건에 맞는 상품 리스트가 반환됩니다.

예외가 발생하거나 검색 결과가 없는 경우 searchResult는 빈 배열로 반환됩니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/item-search/search/상의

Path Parameters

파라미터 타입 필수 여부 설명
searchWord string required 검색할 키워드 (예: 상의, 바지 등)

Response

  • Status 200 OK

    {
      "searchResult": [
          {
              "itemKey": 1,
              "itemName": "테스트용 상품1(상의)",
              "itemType": "상의",
              "itemBrand": "TEST",
              "itemStyle": "캐주얼",
              "itemCnt": 100,
              "itemContent": "테스트용 상의 상품",
              "itemPrice": 10000,
              "itemDate": "2023-07-29"
              "itemImgName": "optimize.png"
          },
          {
              "itemKey": 2,
              "itemName": "테스트상품",
              "itemType": "상의",
              "itemBrand": "TEST",
              "itemStyle": "캐주얼",
              "itemCnt": 100,
              "itemContent": "테스트용 상의 상품",
              "itemPrice": 100000,
              "itemDate": "2024-07-28"
          }
      ]
    }
  • Status 500 Internal Server Error

    {
        "searchResult": []
    }
GET : 추천 검색어

GET: 추천 검색어

URL: /api/item-search/recommend

검색 횟수가 높은 상위 10개의 검색어 중 3개를 랜덤으로 추천해주는 API입니다. 서버는 searchTable에서 검색 횟수(SearchCount)가 높은 검색어를 기준으로 추천 검색어를 제공합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/item-search/recommend

Response

  • Status 200 OK

    {
        "recommendations": ["상의", "바지", "신발"]
    }
  • Status 500 Internal Server Error

    {
        "message": "추천 검색어 조회 중 오류가 발생했습니다."
    }

설명

  • 이 API는 검색 횟수가 많은 상위 10개의 검색어 중 3개를 랜덤으로 반환합니다.
  • 결과는 recommendations 필드에 배열 형태로 반환되며, 이 배열에는 3개의 추천 검색어가 포함됩니다.
  • 예외가 발생할 경우 message 필드에 오류 메시지가 포함됩니다.

주문/결제 페이지

Details
**POST: 주문내역 등록**

POST: 주문 등록

주문 정보를 받아 주문을 등록하는 API입니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/order/post_order

Request Body Parameters

파라미터 타입 필수 여부 설명
userEmail string required 회원 이메일
userName string required 회원 이름
userAddr string required 회원 주소
userAddrDetail string optional 회원 상세 주소
userNumber string required 회원 전화번호
itemTotal int required 주문의 총 가격
items array(object) required 주문한 상품 리스트
  • items 객체 내부 필드

    필드 타입 필수 여부 설명
    itemKey int required 상품 고유 번호
    itemName string required 상품 이름
    itemSize string required 상품 사이즈
    itemPrice int required 상품 가격
    qty int required 상품 수량
    pitStatus boolean required 수선 여부 (true: 수선 있음, false: 수선 없음)
    pitItemOrder object optional 수선 정보 (수선 여부가 true일 경우 필요, 없으면 null)
  • pitItemOrder 객체 내부 필드 (수선 정보)

    필드 타입 필수 여부 설명
    itemType string required 상품 종류 (예: 상의, 하의)
    itemSize string optional 수선 후 상품 사이즈
    itemName string required 상품 이름
    itemHeight float optional 총장 (상의/하의 공통)
    itemShoulder float optional 어깨 너비 (상의 전용)
    itemChest float optional 가슴 단면 (상의 전용)
    itemSleeve float optional 소매 길이 (상의 전용)
    frontrise float optional 바지 밑위 (하의 전용)
    itemWaists float optional 허리 단면 (하의 전용)
    itemThighs float optional 허벅지 단면 (하의 전용)
    itemHemWidth float optional 밑단 단면 (하의 전용)
    itemhipWidth float optional 엉덩이 단면 (하의 전용)

Request Example

{
    "userEmail": "test1",
    "userName": "신우진",
    "userAddr": "서울시 강남구",
    "userAddrDetail": "상세주소 테스트",
    "userNumber": "010-1234-5678",
    "itemTotal": 12000,
    "items": [
        {
            "itemKey": 7,
            "itemName": "포스 맨투맨",
            "itemSize": "M",
            "itemPrice": 70000,
            "qty": 1,
            "pitStatus": true,
            "pitItemOrder": {
                "itemType": "상의",
                "itemSize": "L",
                "itemName": "포스 맨투맨",
                "itemHeight": 70.0,
                "itemShoulder": 45.0,
                "itemChest": 55.0,
                "itemSleeve": 60.0,
                "frontrise": null,
                "itemWaists": null,
                "itemThighs": null,
                "itemHemWidth": null
            }
        },
        {
            "itemKey": 8,
            "itemName": "로고 후디",
            "itemSize": "L",
            "itemPrice": 20000,
            "qty": 1,
            "pitStatus": false,
            "pitItemOrder": null
        }
    ]
}

Response

  • Status 200 OK

    {
        "message": "주문 등록 완료."
    }
  • Status 500 Internal Server Error

    {
        "message": "알 수 없는 오류가 발생했습니다."
    }
GET: 주문 조회

GET: 주문 조회

URL: /api/order/get_order/{userEmail}

특정 사용자의 주문 목록을 조회하는 API입니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/order/get_order/{userEmail}

Path Variables

파라미터 타입 필수 여부 설명
userEmail string required 조회할 회원 이메일

Response

  • Status 200 OK
    [
        {
            "itemKey": 1,
            "userEmail": "test@example.com",
            "userName": "테스트",
            "userAddr": "서울시 강남구",
            "userNumber": "010-1234-5678",
            "optional": "상품1",
            "itemImg": "image_url.jpg",
            "itemSize": "L",
            "itemPrice": 30000,
            "itemTotal": 60000,
            "qty": 2,
            "pitStatus": "수선 있음", // 수선 여부, 0: 수선 없음, 1: 수선 있음
            "displayPitPrice": "5000", // 수선 비용, null일 경우 "경매중"
            "displayOrderStatus": "결제 완료" // 주문 상태, 0: 결제 완료, 1: 배송중, 2: 배송완료
        }
    ]

DB에 저장된 값에 따라 pitStatus , displayPitPrice , displayOrderStatus 값이 다르게 나옵니다.

  • Status 404 Not Found

    {
        "message": "주문 리스트가 없습니다."
    }
  • Status 500 Internal Server Error

    {
        "message": "주문 조회 중 오류가 발생했습니다."
    }
POST: 결제 내역 저장

POST: 결제 완료

URL: /api/payment/complete

결제 완료 및 주문 내역을 저장하는 API입니다. 결제 정보를 받아 처리합니다.

  • 요청 URL 예시: https://fitpin.kro.kr/app-api/api/payment/complete

Request Body Parameters

파라미터 타입 필수 여부 설명
paymentKey int required 결제 고유번호
orderKey int required 주문 고유번호
userKey int required 회원 고유번호
totalPrice int required 결제 총액
paymentDate string required 결제 날짜

Response

  • Status 200 OK

    {
        "message": "결제 및 주문 내역 저장 완료."
    }
  • Status 500 Internal Server Error

    {
        "message": "결제 내역 저장 중 오류가 발생했습니다."
    }
수선 관련

관리자 API

POST/api/itemImages/upload : 상품의 이미지를 등록하는 api입니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/itemImages/upload

헤더

  • Content-Type: multipart/form-data
Form Data
- `image` (File): 사용자의 이메일 주소
- `itemKey` (Text): item테이블의 itemKey 열, 제품의 고유번호
POST/api/itemBottomInfo/register : 하의 상품의 상세 정보를 등록를 등록하는 API입니다.

요청 URL 예시: https://fitpin.kro.kr/app-api/api/itemTopInfo/register

{
  "itemKey": 1,
  "itemSize": 32.5,
  "itemHeight": 40.0,
  "itemShoulder": 15.5,
  "itemArm": 20.0,
  "itemChest": 10.0,
  "itemSleeve": 8.0
}

About

Fitpin 앱 백엔드

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages