본문 바로가기

Network

Open API

Open API란 방대한 양의 데이터를 API를 통해 전송 받을 수 있는 서비스를 말합니다.

 

대표적으로 아래와 같은 서비스들이 있습니다.

공공데이터포털

서울열린데이터광장

네이버 오픈 API

카카오 API

OpenWeather API

 

예제)

OpenWeather API를 통해 한 도시의 현재 날씨 데이터를 요청하는 것으로 예시를 들어 보겠습니다.

http://api.openweathermap.org/data/2.5/weather?appid=test88test99test00test123&q=seoul&units=metric

 

? : 쿼리("나 이런 데이터 줘"라고 질문하는 것)가 시작됨을 나타내는 마크

 

? 뒤에 원하는 정보를 얻기 위한 인자값들을 "인자명=인자값"의 형태로 적어주고 여러개의 인자를 넣을 때는 "인자명1=인자값&인자명2=인자값"과 같이 &로 연결

 

appid : open API를 사용할 때는 보통 간단한 서비스 회원가입을 거쳐서  서비스를 이용하기 위한 고유의 API key를 발급 받아야 합니다. 이 키가 있어야 요청한 데이터를 받을 수 있습니다.

(서비스 마다 API key에 대한 인자명이 다를 수 있음. appid가 아니라 다른 이름일 수 도 있다는 뜻)

 

q : 데이터를 요청할 도시 이름을 인자값으로 넣습니다. 여기서는 서울을 입력하였습니다.

 

units : 원하는 단위의 기준을 인자값으로 넣습니다. 기본 데이터의 단위가 Kelvin 단위이기에 우리나라에서 사용하는 미터법 단위(metric)를 입력하였습니다.

 

 

위와 같이 URL을 잘 입력하여 요청을 보내면 OpenWeather API 서비스에서는 아래와 같은 JSON 형식의 파일을 보내줍니다.

// JSON 형식의 파일
{
    "coord": {
        "lon": 126.98,
        "lat": 37.57
    },
    "weather": [
        {
            "id": 501,
            "main": "Rain",
            "description": "moderate rain",
            "icon": "10n"
        },
        {
            "id": 741,
            "main": "Fog",
            "description": "fog",
            "icon": "50n"
        }
    ],
    "base": "stations",
    "main": {
        "temp": 5.72,
        "pressure": 1022,
        "humidity": 100,
        "temp_min": 2,
        "temp_max": 10
    },
    "visibility": 800,
    "wind": {
        "speed": 0.5,
        "deg": 80
    },
    "clouds": {
        "all": 75
    },
    "dt": 1575907113,
    "sys": {
        "type": 1,
        "id": 5501,
        "country": "KR",
        "sunrise": 1575930933,
        "sunset": 1575965628
    },
    "timezone": 32400,
    "id": 1835848,
    "name": "Seoul",
    "cod": 200
}

'Network' 카테고리의 다른 글

HTTP  (0) 2019.12.12
Socket  (0) 2019.12.12
OSI 7계층  (0) 2019.12.12
URL, DNS, PortNumber  (0) 2019.12.12