도로기상정보 (제공)
인프라로 부터 수집하여 가공한 기상정보를 제공합니다.
Last updated
인프라로 부터 수집하여 가공한 기상정보를 제공합니다.
Last updated
https://service.mqnicrnd5.com/api/v1/rw/offer/grw
요청 시 (정보 갱신 주기 : 10분)
HTTPS
GET
API를 요청할 때 다음 예와 같이 HTTP 요청 헤더에 접근 토큰(Access Token) 을 추가해야 합니다. 접근 토큰 앞에 "Bearer " 문자열을 추가해야 한다는 점에 주의하세요.
> GET /api/v1/rw/offer/grw?locgovId=43130&spatialUnit=MEC
> Host: service.mqnicrnd5.com
> User-Agent: curl/7.64.1
> Accept: */*
> Authorization: Bearer <접근 토큰>
curl --location 'https://service.mqnicrnd5.com/api/v1/rw/offer/grw?locgovId=43130' \
--header 'Authorization: Bearer <접근 토큰>'
[
{
"mecId": "RSU00002",
"linkId": null,
"dttm": "20240619073552",
"roadWeather": {
"weatherData": {
"ta": -3.1,
"hm": 17.1,
"pa": 1025.7,
"ws": 10.1,
"wd": 0.1,
"cpsd": 0.0,
"rn": 0.1,
"statCd": "24"
},
"visibilityData": {
"vs": 11,
"at": -3,
"statCd": "24"
},
"roadSurfaceData": {
"ts": -3.1,
"ft": -24.6,
"wfh": 0.1,
"ilt": 0.1,
"sd": 0.3,
"ip": 17.1,
"st": 3,
"f": 0.5,
"statCd": "24"
}
}
},
{
"mecId": "RSU00001",
"linkId": null,
"dttm": "20240619073550",
"roadWeather": {
"weatherData": {
"ta": -3.1,
"hm": 17.1,
"pa": 1025.7,
"ws": 10.1,
"wd": 0.1,
"cpsd": 0.0,
"rn": 0.1,
"statCd": "24"
},
"visibilityData": {
"vs": 11,
"at": -3,
"statCd": "24"
},
"roadSurfaceData": {
"ts": -3.1,
"ft": -24.6,
"wfh": 0.1,
"ilt": 0.1,
"sd": 0.3,
"ip": 17.1,
"st": 3,
"f": 0.5,
"statCd": "24"
}
}
}
]
다음은 각 언어별 실시간도로환경 기상정보 제공 API 구현 예제입니다.
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;
import java.net.URL;
public class CallAPI {
public static void main(String[] args) {
String accessToken = "Bearer " + "<접근 토큰>";
String locgovId = "1111054000";
String spatialUnit = "MEC"; // or LINK
String mecId = "99370";
String linkId = "392021260";
String reqDttm = "202304012050";
String apiURL = "https://service.mqnicrnd5.com/api/v1/rw/offer/grw?"
+ "locgvId=" + locgvId + "&"
+ "spatialUnit=" + spatialUnit + "&"
+ "mecId=" + mecId + "&"
+ "linkId=" + linkId + "&"
+ "reqDttm=" + reqDttm ;
Map<String, String> requestHeaders = new HashMap<>();
requestHeaders.put("Authorization", accessToken);
String responseBody = get(apiURL,requestHeaders);
System.out.println(responseBody);
}
private static String get(String apiUrl, Map<String, String> requestHeaders) {
HttpURLConnection con = connect(apiUrl);
try {
con.setRequestMethod("GET");
for (Map.Entry<String, String> header : requestHeaders.entrySet()) {
con.setRequestProperty(header.getKey(), header.getValue());
}
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) { // 정상 호출
return readBody(con.getInputStream());
} else { // 오류 발생
return readBody(con.getErrorStream());
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
con.disconnect();
}
}
private static HttpURLConnection connect(String apiUrl) {
try {
URL url = new URL(apiUrl);
return (HttpURLConnection) url.openConnection();
} catch (MalformedURLException e) {
throw new RuntimeException("API URL이 잘못되었습니다. : " + apiUrl, e);
} catch (IOException e) {
throw new RuntimeException("연결이 실패했습니다. : " + apiUrl, e);
}
}
private static String readBody(InputStream body) {
InputStreamReader streamReader = new InputStreamReader(body);
try (BufferedReader lineReader = new BufferedReader(streamReader)) {
StringBuilder responseBody = new StringBuilder();
String line;
while ((line = lineReader.readLine()) != null) {
responseBody.append(line);
}
return responseBody.toString();
} catch (IOException e) {
throw new RuntimeException("API 응답을 읽는 데 실패했습니다.", e);
}
}
}
import requests
import json
def send_get_request():
accessToken = "Bearer " + "<접근 토큰>"
locgovId = "1111054000"
spatialUnit = "MEC" # or LINK
mecId = "99370"
linkId = "392021260"
reqDttm = "202304012050"
apiURL = "https://service.mqnicrnd5.com/api/v1/am/offer/grw?" \
+ "locgovId=" + str(locgovId) + "&" \
+ "spatialUnit=" + str(spatialUnit) + "&" \
+ "mecId=" + str(mecId) + "&" \
+ "linkId=" + str(linkId) + "&" \
+ "reqDttm=" + str(reqDttm)
# Set headers
headers = {
"Authorization": accessToken
}
# Send GET request
response = requests.get(apiURL, headers=headers)
# Print response
print("GET Request:")
print("Response Code:", response.status_code)
print("Response:", response.text)
if __name__ == "__main__":
send_get_request()
const axios = require('axios');
async function sendGetRequest() {
const accessToken = "Bearer <접근 토큰>"; // 실제 토큰으로 교체 필요
const locgovId = "1111054000";
const spatialUnit = "MEC"; // or LINK
const mecId = "99370";
const linkId = "392021260";
const reqDttm = "202304012050";
const apiURL = `https://service.mqnicrnd5.com/api/v1/am/offer/grw?` +
`locgovId=${locgovId}&` +
`spatialUnit=${spatialUnit}&` +
`mecId=${mecId}&` +
`linkId=${linkId}&` +
`reqDttm=${reqDttm}`;
// Set headers
const headers = {
"Authorization": accessToken
};
try {
// Send GET request
const response = await axios.get(apiURL, { headers });
console.log("GET Request:");
console.log("Response Code:", response.status);
console.log("Response:", response.data);
} catch (error) {
console.error("Error in GET Request:", error);
}
}
sendGetRequest();
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace GetRequestExample
{
class Program
{
static readonly HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
await SendGetRequest();
}
static async Task SendGetRequest()
{
string accessToken = "Bearer <접근 토큰>"; // 실제 토큰으로 교체 필요
string locgovId = "1111054000";
string spatialUnit = "MEC"; // or LINK
string mecId = "99370";
string linkId = "392021260";
string reqDttm = "202304012050";
string apiURL = $"https://service.mqnicrnd5.com/api/v1/am/offer/grw?" +
$"locgovId={locgovId}&" +
$"spatialUnit={spatialUnit}&" +
$"mecId={mecId}&" +
$"linkId={linkId}&" +
$"reqDttm={reqDttm}";
// Set headers
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("Authorization", accessToken);
try
{
// Send GET request
HttpResponseMessage response = await client.GetAsync(apiURL);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine("GET Request:");
Console.WriteLine("Response Code:", (int)response.StatusCode);
Console.WriteLine("Response:", responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"\nException Caught!");
Console.WriteLine($"Message :{e.Message} ");
}
}
}
}