Skip to content

API 명세서_Weathy API

Jahyun Kim edited this page Jan 12, 2021 · 62 revisions

Weathy API

메소드 경로 설명 구현 여부
#008000 GET ~/users/:user-id/weathy/recommend?code={code}&date={date} 추천된 웨디 조회
#008000 GET ~/weathy?date={date} 웨디 조회
#ffa500 POST ~/weathy 웨디 기록
#0000ff PUT ~/weathy/:weathy-id 웨디 기록 수정
#ff0000 DELETE ~/weathy/:weathy-id 웨디 기록 삭제

Get Recommended Weathy

  • 일자의 추천 웨디를 조회한다
메소드 경로 설명
#008000 GET ~/users/:user-id/weathy/recommend?code={code}&date={date} 추천 웨디 조회

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Path Parameter

Name Type Description Mandatory
user-id integer 유저 고유 식별자 Y

Query string

Name Type Description Mandatory
code integer 행정 코드 Y
date date YYYY-MM-DD (e.g., 2021-01-25) Y

성공 시 Response Body

{
    "weathy": {
        "dailyWeather": {
            "region": {
                "code": 123456,
                "name": "경기도 수원시"
            },
            "date": {
                "year": 2020,
                "month": 12,
                "day": 31,
                "dayOfWeek": "목요일"
            },
            "temperature": {
                "maxTemp": 4,
                "minTemp": -3
            }
        },
        "hourlyWeather": {
            "climate": {
                "iconId": 16,
                "description": "조금 흐리지만 따뜻함"
            },
            "pop": 30
        },
        "closet": {
            "top": {
                "categoryId": 1,
                "clothes": [
                    {
                        "id": 1,
                        "name": "까만 후드티"
                    },
                    ...
                ]
            },
            "bottom": { ... },
            "outer": { ... },
            "etc": { ... }
        },
        "weathyId": 1,
        "stampId": 1,
        "feedback": "목도리를 하고 나갈 걸 그랬어요"
    },
    "message": "추천 웨디 조회 성공"
}
Type Name Description
Weathy weathy 웨디 정보
- DailyWeather dailyWeather 일자 날씨 정보
-- Region region 위치 정보
--- int code 행정 코드
--- string name 지역 이름
-- Date date 날짜 정보
--- int year 연도
--- int month
--- int day
--- string dayOfWeek 요일
-- HighLowTemp temperature
--- int maxTemp 최고 온도
--- int minTemp 최저 온도
- HourlyWeather hourlyWeather 시간별 날씨
-- Climate climate 기후 정보
--- int iconId 아이콘 id
--- string description 기후 설명
-- int pop 강수 확률
ClothesListByCategory closet 옷장 정보
- List<Clothes> top 상의 정보
- List<Clothes> bottom 하의 정보
- List<Clothes> outer 외투 정보
- List<Clothes> etc 기타 정보
-- Clothes
--- int id 옷 id
--- int categoryId 카테고리 id
--- string name 옷 이름
- int weathyId 웨디 id
- int stampId 기록한 이모지
- string feedback 입력한 상세 정보
string message 상태 메시지

추천된 웨디 조회에 실패한 경우

  • status code를 204로 보낼 것임

Get Weathy

  • 특정 날짜의 웨디를 조회한다
메소드 경로 설명
#008000 GET ~/weathy?date={date} 웨디 조회

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Query Parameter

Name Type Description Mandatory
date date YYYY-MM-DD (e.g., 2021-01-25) Y

웨디 정보가 있음

{
    "weathy": {
        "dailyWeather": {
            "region": {
                "code": 123456,
                "name": "경기도 수원시"
            },
            "date": {
                "year": 2020,
                "month": 12,
                "day": 31,
                "dayOfWeek": "목요일"
            },
            "temperature": {
                "maxTemp": 4,
                "minTemp": -3
            }
        },
        "hourlyWeather": {
            "climate": {
                "iconId": 16,
                "description": "조금 흐리지만 따뜻함"
            },
            "pop": 30
        },
        "closet": {
            "top": {
                "categoryId": 1,
                "clothes": [
                    {
                        "id": 1,
                        "name": "까만 후드티"
                    },
                    ...
                ]
            },
            "bottom": { ... },
            "outer": { ... },
            "etc": { ... }
        },
        "weathyId": 1,
        "stampId": 1,
        "feedback": "목도리를 하고 나갈 걸 그랬어요"
    },
    "message": "웨디 기록 조회 성공"
}
Type Name Description
Weathy weathy 웨디 정보
- DailyWeather dailyWeather 일자 날씨 정보
-- Region region 위치 정보
--- int code 행정 코드
--- string name 지역 이름
-- Date date 날짜 정보
--- int year 연도
--- int month
--- int day
--- string dayOfWeek 요일
-- HighLowTemp temperature
--- int maxTemp 최고 온도
--- int minTemp 최저 온도
- HourlyWeather hourlyWeather 시간별 날씨
-- Climate climate 기후 정보
--- int iconId 아이콘 id
--- string description 기후 설명
-- int pop 강수 확률
ClothesListByCategory closet 옷장 정보
- List<Clothes> top 상의 정보
- List<Clothes> bottom 하의 정보
- List<Clothes> outer 외투 정보
- List<Clothes> etc 기타 정보
-- Clothes
--- int id 옷 id
--- int categoryId 카테고리 id
--- string name 옷 이름
- int weathyId 웨디 id
- int stampId 기록한 이모지
- string feedback 입력한 상세 정보
string message 상태 메시지

웨디 정보가 없음

  • status code를 204로 보낼 것임

Record Weathy

  • 웨디를 기록한다
메소드 경로 설명
#ffa500 POST /weathy 웨디 기록

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Body

Type Name Description Mandatory
integer `userId
` 유저 고유 식별자 Y
Date date YYYY-MM-DD (e.g., 2021-01-25) Y
int code 행정 코드 Y
List<int> clothes 옷 id들의 리스트 Y
int stampId 기록한 이모지 Y
string feedback 입력한 상세 정보 Y
  • 예시
{
    "userId": 5,
    "date": "2021-01-25",
    "code": 123456,
    "clothes": [ 1, 3, 5, 6],
    "stampId": 2,
    "feedback": ""
}

성공 시 Response Body

{
    "message": "웨디 기록 성공"
}
Type Name Description
string message 상태 메시지

중복된 날짜 혹은 날씨를 가져올 수 없는 날짜에 Weathy를 작성한 경우

  • status code를 400으로 보낼 것임.
{
    "message": "잘못된 날짜에 Weathy 작성"
}

다른 사람의 Weathy에 접근함

  • status code를 403으로 보낼 것임.
{
    "message": "잘못된 Weathy에 접근함"
}

Modify Weathy

  • 웨디 기록을 수정한다
메소드 경로 설명
#0000ff PUT ~/weathy/:weathy-id 웨디 기록 수정

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Path Parameter

Name Type Description Mandatory
weahty-id integer 1 Y

Body

Type Name Description Mandatory
int code 행정 코드 Y
List<int> clothes 옷 id들의 리스트 Y
int stampId 기록한 이모지 Y
string feedback 입력한 상세 정보 Y
  • 예시
{
    "code": 123456,
    "clothes": [ 1, 3, 5, 6],
    "stampId": 2,
    "feedback": ""
}

성공 시 Response Body

{
    "message": "웨디 기록 수정 완료"
}
Type Name Description
string message 상태 메시지

다른 사람의 Weathy에 접근함

  • status code를 403으로 보낼 것임.
{
    "message": "잘못된 Weathy에 접근함"
}

Delete Weathy

  • 웨디 기록을 삭제한다
메소드 경로 설명
#ff0000 DELETE ~/weathy/:weathy-id 웨디 기록 삭제

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Path Parameter

Name Type Description Mandatory
weahty-id integer 1 Y

성공 시 Response Body

{
    "message": "웨디 기록 삭제 성공"
}
Type Name Description
string message 상태 메시지

이미 존재하지않는 Weathy

  • status code를 204으로 보낼 것임.