REST API는 특성상 특정 플랫폼에 종속되지 않습니다. 따라서 앞서 소개한 Python, VBA 외에도 다양한 프로그래밍 언어에서 사용할 수 있습니다.
아래에서는 다음 REST API 요청을 여러 프로그래밍 언어로 수행하는 예시를 제공합니다.
| HTTP METHOD | POST |
| URL | baseURL/db/node |
| JSON BODY | |
C# - HttpClient
- 예제 코드
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "baseURL/db/node");
request.Headers.Add("mapi-key", "your_api_key_hear");
var content = new StringContent("{\r\n \"Assign\": {\r\n \"1\": {\r\n \"X\": 1,\r\n \"Y\": 2,\r\n \"Z\": 3\r\n }\r\n }\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
JavaScript - Fetch
- 예제 코드
var myHeaders = new Headers();
myHeaders.append("mapi-key", "your_api_key_hear");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"Assign": {
"1": {
"X": 1,
"Y": 2,
"Z": 3
}
}
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("baseURL/db/node", requestOptions)
.then(response = response.text())
.then(result = console.log(result))
.catch(error = console.log('error', error));
Java - OkHttp
- 예제 코드
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n \"Assign\": {\r\n \"1\": {\r\n \"X\": 1,\r\n \"Y\": 2,\r\n \"Z\": 3\r\n }\r\n }\r\n}");
Request request = new Request.Builder()
.url("baseURL/db/node")
.method("POST", body)
.addHeader("mapi-key", "your_api_key_hear")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
Dart - Dio
- 예제 코드
var headers = {
'mapi-key': 'your_api_key_hear',
'Content-Type': 'application/json'
};
var data = json.encode({
"Assign": {
"1": {
"X": 1,
"Y": 2,
"Z": 3
}
}
});
var dio = Dio();
var response = await dio.request(
'baseURL/db/node',
options: Options(
method: 'POST',
headers: headers,
),
data: data,
);
if (response.statusCode == 200) {
print(json.encode(response.data));
}
else {
print(response.statusMessage);
}
C - libcurl
- 예제 코드
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, "baseURL/db/node");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "mapi-key: your_api_key_hear");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\r\n \"Assign\": {\r\n \"1\": {\r\n \"X\": 1,\r\n \"Y\": 2,\r\n \"Z\": 3\r\n }\r\n }\r\n}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
NodeJS - Axios
- 예제 코드
const axios = require('axios');
let data = JSON.stringify({
"Assign": {
"1": {
"X": 1,
"Y": 2,
"Z": 3
}
}
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: '/db/node',
headers: {
'mapi-key': '',
'Content-Type': 'application/json'
},
data : data
};
axios.request(config)
.then((response) = {
console.log(JSON.stringify(response.data));
})
.catch((error) = {
console.log(error);
});