Skip to content

API 명세서

seonuk edited this page Dec 31, 2020 · 8 revisions

API 명세서

api list

Get weather Api

메인 뷰에서 위도, 경도, 현재 시간을 이용해 현재 날씨에 관한 정보를 조회한다.

request

GET ~/currentWeather?lat={latitude}&lon={longitude}&time={currentTime}

Content-Type: application/json

Query String

Name Type Description Mandatory
lat Double 위도 정보 Y
lon Double 경도 정보 Y
time String 'YYYY-MM-DD-HH' 형식의 현재 시간 Y

Response

status code description
200 OK 실시간 현재 날씨에 관한 정보를 반환한다.
400 Bad Request Query string의 형식이 적합하지 않음
500 Internal Server Error 서버 에러

성공일 때 response body는 JSON 형식이며 아래와 같다.

{
    "realTimeWeather": {
        "todayWeather": {
          "regionInfo": {
            "code": 123456,
            "name": "경기도 수원시"
          },
          "date": {
            "month": 12,
            "day": 31,
            "dayOfWeek": ""
          },
          "temperature": {
            "maxTemp": 4,
            "minTemp": -3
          }
        },

        "currentWeather": {
          "time": "오후 5시",
          "temperature": -4,
          "climate": {
            "id": 2312,
            "description": "조금 흐리지만 따뜻함"
          }
        }
      },
   "code": 200,
   "message": "실시간 날씨 정보 반환 성공"
}
Name Type Description
realTimeWeather object of realTimeWeather 실시간 날씨 정보를 담은 객체
code integer 상태 코드
message string 상태 메세지

Get weather by code Api

메인 뷰에서 행정코드, 시간을 이용해 현재 날씨에 관한 정보를 조회한다.

request

GET ~/currentWeather?code={code}&time={currentTime}

Content-Type: application/json

Query String

Name Type Description Mandatory
code Integer 행정 코드 Y
time String 'YYYY-MM-DD-HH' 형식의 현재 시간 Y

Response

status code description
200 OK 실시간 현재 날씨에 관한 정보를 반환한다.
400 Bad Request Query string의 형식이 적합하지 않음
500 Internal Server Error 서버 에러

성공일 때 response body는 JSON 형식이며 아래와 같다.

{
    "realTimeWeather": {
        "todayWeather": {
          "region": {
            "code": 123456,
            "name": "경기도 수원시"
          },
          "date": {
            "month": 12,
            "day": 31,
            "dayOfWeek": ""
          },
          "temperature": {
            "maxTemp": 4,
            "minTemp": -3
          }
        },

        "currentWeather": {
          "time": "오후 5시",
          "temperature": -4,
          "climate": {
            "id": 2312,
            "description": "조금 흐리지만 따뜻함"
          }
        }
      },
   "code": 200,
   "message": "실시간 날씨 정보 반환 성공"
}
Name Type Description
realTimeWeather object of realTimeWeather 실시간 날씨 정보를 담은 객체
code integer 상태 코드
message string 상태 메세지

Get user api

user id (기기 번호 등 고유 식별자)로 유저의 정보를 조회

request

GET ~/users/:userId

Content-Type: application/json

Path Parameter

Name Type Description Mandatory
userId Integer 유저 고유 식별자 Y

Response

status code description
200 OK 유저의 정보를 반환한다.
400 Bad Request Path Parameter 형식이 적합하지 않음
500 Internal Server Error 서버 에러

성공일 때 response body는 JSON 형식이며 아래와 같다.

{
  "user": {
    "id": 0,
    "nickname": "홍길동"
  },
  "code": 200,
  "message": "유저 정보 반환 성공!"
}
Name Type Description
user object of user 유저 정보를 담은 유저 객체

Get weathy api

오늘의 웨디 조회,

request

GET ~/users/:user-id/weathy?code={code}

Content-Type: application/json

####Path Parameter

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

Query string

Name Type Description Mandatory
code Integer 행정 코드 Y

Response

status code description
200 OK 웨디의 정보를 반환한다.
400 Bad Request Parameter 형식이 적합하지 않음
500 Internal Server Error 서버 에러

성공일 때 response body는 JSON 형식이며 아래와 같다.

{
  "weathy": {
    "todayWeather": {
          "region": {
            "code": 123456,
            "name": "경기도 수원시"
          },
          "date": {
            "month": 12,
            "day": 31,
            "dayOfWeek": ""
          },
          "temperature": {
            "maxTemp": 4,
            "minTemp": -3
          }
        },
    "clothingArray":[
      {
        "id": 1,
        "categoryId": 2,
        "name": "까만 후드티"
      }
    ],
    "stampId": 1,
    "feedback" "목도리를 하고 나갈껄 그랬어요"
  }
}
Name Type Description
todayWeather object of todayWeather 과거 기록된 당일의 날씨
clothingArray Object of clothingArray 과거 기록된 당일의 의상
stampId Integer 기록한 이모지
feedback String 입력한 상세 정보

Get hourly weather api

시간대별 날씨 조회

request

GET ~/hourly-weather?code={code}&time={currentTime}

Content-Type: application/json

Query string

Name Type Description Mandatory
code Integer 행정 코드 Y
time String 'YYYY-MM-DD-HH' 형식의 현재 시간 Y

Response

status code description
200 OK 시간대별 날씨 정보를 반환한다.
400 Bad Request Parameter 형식이 적합하지 않음
500 Internal Server Error 서버 에러

성공일 때 response body는 JSON 형식이며 아래와 같다.

{
  "weather": {
    "hourlyWeatherArray":[
      {
        "time": "오후 5시",
        "temperature": -4,
        "climate": {
         	"id": 2312,
          "description": "조금 흐리지만 따뜻함"
    	},
     "weeklyWeatherArray": [
       {
        "time": "오후 5시",
        "temperature": -4,
        "climate": {
         	"id": 2312,
          "description": "조금 흐리지만 따뜻함"
    	}
     ],
     "additionalWeather": {
         "precipitation": ,
         "humidity":,
         "pm":
       }
    ]
  }
}

RESOURCE


realTimeWeather

실시간 날씨 정보 개요

example

{
  "todayWeather": {
    "regionInfo": {
      "code": 123456,
      "name": "경기도 수원시"
    },
    "date": {
      "month": 12,
      "day": 31,
      "dayOfWeek": ""
    },
    "temperature": {
      "maxTemp": 4,
      "minTemp": -3
    }
  },

  "currentWeather": {
    "time": "오후 5시",
    "temperature": -4,
    "climate": {
      "id": 2312,
      "description": "조금 흐리지만 따뜻함"
    }
  }
}
Name Type Description
todayWeather object 일자별 날씨 정보
currentWeather object 시간별 날씨 정보

todayWeather

일자별 날씨 정보 개요

example

{
  "region": {
    "code": 123456,
    "name": "경기도 수원시"
  },
  "date": {
    "month": 12,
    "day": 31,
    "dayOfWeek": ""
  },
  "temperature": {
    "maxTemp": 4,
    "minTemp": -3
  }
}
Name Type Description
region object 지역 정보
date object 오늘 일자
temperature object 최저/최고 온도

currentWeather

현재 시간 날씨 정보 개요

example

{
  "time": "오후 5시",
  "temperature": -4,
  "climate": {
    "id": 2312,
    "description": "조금 흐리지만 따뜻함"
  }
}
Name Type Description
time string 현재 시간
temperature integer 현재 기온
climate object 기후 정보

region

지역 정보

example

{
  "code": 123456,
  "name": "경기도 수원시"
}
Name Type Description
code integer 해당 지역 행정 코드
name string 지역 이름

date

날짜 정보

example

{
  "month": 12,
  "day": 31,
  "dayOfWeek": "" 
}
Name Type Description
month integer
day integer
dayOfWeek string 요일

temperature

온도 정보

example

{
  "maxTemp": 4,
  "minTemp": -3
}
Name Type Description
maxTemp integer 최대 온도
minTemp integer 최저 온도
dayOfWeek string 요일

climate

기후 정보

example

{
  "id": 2312,
  "description": "조금 흐리지만 따뜻함"
}
Name Type Description
id integer 기후 정보 ID
description string 기후 설명 text

user

유저 정보

example

{
  "id": 2312,
  "nickname": "홍길동"
}
Name Type Description
id integer 유저 식별자 (기기 id)
nickname string 유저 별명

weathy

오늘 일자와 과거 기록 중 가장 비슷한 날의 날씨 및 옷 정보

example

{
  "todayWeather": { },
  "clothingArray": [],
  "stampId": 1,
  "feedback": "목도리가 좋아요~"
}
Name Type Description
todayWeather integer 일자별 날씨 정보
clothingArray array 옷 정보 리스트
stampId integer 사용자가 기록한 이모지 id
feedback string 사용자 피드백

clothingArray

옷 정보 리스트 clothing로 구성됨

example

[
  {
      "id": 1,
      "categoryId": 2,
      "name": "까만 후드티"
  }
]
clothing
Name Type Description
id integer 옷의 id
categoryId integer 옷이 해당하는 카테고리 id
name string 옷 이름