Rentmaster API를 활용하여 각 언어별로 기능을 구현하는 기본 예제 코드입니다.
<?php
$api_url = "https://rentmaster.co.kr/api/v1/item/list";
$api_key = "발급받은_API_KEY";
$page = 1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url . "?page=" . $page);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $api_key,
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result && $result['success']) {
foreach ($result['data'] as $item) {
echo "상품명: " . $item['itemname'] . "<br>";
echo "대여가능: " . $item['available_stock'] . "<hr>";
}
} else {
echo "데이터를 불러오는데 실패했습니다.";
}
?>
<?php
$itemcode = "상품코드입력";
$api_url = "https://rentmaster.co.kr/api/v1/item/detail?itemcode=" . $itemcode;
$api_key = "발급받은_API_KEY";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $api_key
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result && $result['success']) {
$data = $result['data'];
echo "<h1>" . $data['itemname'] . "</h1>";
echo "<p>예약가능 재고: " . count($data['barcodes']) . "</p>";
}
?>
<?php
$api_url = "https://rentmaster.co.kr/api/v1/rent/reserve";
$api_key = "발급받은_API_KEY";
$post_data = json_encode([
'barcode' => '예약할_바코드',
'member_no' => '회원_고유번호',
'target_date' => '2023-12-31',
'reserve_type' => 'delivery',
'dlv_zipcode' => '12345',
'dlv_addr1' => '서울시 강남구',
'dlv_addr2' => '101동 101호'
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $api_key,
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result && $result['success']) {
echo "예약 성공!";
} else {
echo "예약 실패: " . $result['error'];
}
?>
<?php
$member_no = "회원_고유번호";
$api_url = "https://rentmaster.co.kr/api/v1/rent/my_list?ext_id=" . $member_no;
$api_key = "발급받은_API_KEY";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $api_key
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result && $result['success']) {
foreach ($result['data'] as $rent) {
echo "상태: " . $rent['status_name'] . " / 상품명: " . $rent['itemname'] . "<br>";
}
}
?>
<?php
$api_url = "https://rentmaster.co.kr/api/v1/rent/cancel_reserve";
$api_key = "발급받은_API_KEY";
$post_data = json_encode([
'orderno' => '예약_고유번호',
'ext_id' => '회원_고유번호'
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $api_key,
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
if ($result && $result['success']) {
echo "취소 완료!";
} else {
echo "취소 실패: " . $result['error'];
}
?>
<%
Dim api_url, api_key, xmlHttp, responseText
api_url = "https://rentmaster.co.kr/api/v1/item/list?page=1"
api_key = "발급받은_API_KEY"
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", api_url, False
xmlHttp.setRequestHeader "Authorization", "Bearer " & api_key
xmlHttp.setRequestHeader "Content-Type", "application/json"
xmlHttp.Send
responseText = xmlHttp.responseText
' JSON 파서를 활용하여 responseText를 파싱 후 사용하세요.
Response.Write responseText
Set xmlHttp = Nothing
%>
<%
Dim itemcode, api_url, api_key, xmlHttp, responseText
itemcode = "상품코드입력"
api_url = "https://rentmaster.co.kr/api/v1/item/detail?itemcode=" & itemcode
api_key = "발급받은_API_KEY"
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", api_url, False
xmlHttp.setRequestHeader "Authorization", "Bearer " & api_key
xmlHttp.Send
responseText = xmlHttp.responseText
Response.Write responseText
Set xmlHttp = Nothing
%>
<%
Dim api_url, api_key, postData, xmlHttp, responseText
api_url = "https://rentmaster.co.kr/api/v1/rent/reserve"
api_key = "발급받은_API_KEY"
' JSON 형태로 데이터 구성
postData = "{""barcode"":""바코드"",""member_no"":""회원번호"",""target_date"":""2023-12-31"",""reserve_type"":""place"",""place_id"":1}"
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "POST", api_url, False
xmlHttp.setRequestHeader "Authorization", "Bearer " & api_key
xmlHttp.setRequestHeader "Content-Type", "application/json"
xmlHttp.Send postData
responseText = xmlHttp.responseText
Response.Write responseText
Set xmlHttp = Nothing
%>
<%
Dim member_no, api_url, api_key, xmlHttp, responseText
member_no = "회원번호"
api_url = "https://rentmaster.co.kr/api/v1/rent/my_list?ext_id=" & member_no
api_key = "발급받은_API_KEY"
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", api_url, False
xmlHttp.setRequestHeader "Authorization", "Bearer " & api_key
xmlHttp.Send
responseText = xmlHttp.responseText
Response.Write responseText
Set xmlHttp = Nothing
%>
<%
Dim api_url, api_key, postData, xmlHttp, responseText
api_url = "https://rentmaster.co.kr/api/v1/rent/cancel_reserve"
api_key = "발급받은_API_KEY"
postData = "{""orderno"":""주문번호"",""ext_id"":""회원번호""}"
Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "POST", api_url, False
xmlHttp.setRequestHeader "Authorization", "Bearer " & api_key
xmlHttp.setRequestHeader "Content-Type", "application/json"
xmlHttp.Send postData
responseText = xmlHttp.responseText
Response.Write responseText
Set xmlHttp = Nothing
%>
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RentmasterApi {
public static void main(String[] args) {
try {
URL url = new URL("https://rentmaster.co.kr/api/v1/item/list?page=1");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Bearer 발급받은_API_KEY");
conn.setRequestProperty("Content-Type", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RentmasterDetailApi {
public static void main(String[] args) {
try {
String itemcode = "상품코드입력";
URL url = new URL("https://rentmaster.co.kr/api/v1/item/detail?itemcode=" + itemcode);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Bearer 발급받은_API_KEY");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.OutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RentmasterReserveApi {
public static void main(String[] args) {
try {
URL url = new URL("https://rentmaster.co.kr/api/v1/rent/reserve");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer 발급받은_API_KEY");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonInputString = "{\"barcode\":\"바코드\",\"member_no\":\"회원번호\",\"target_date\":\"2023-12-31\",\"reserve_type\":\"delivery\",\"dlv_zipcode\":\"12345\",\"dlv_addr1\":\"서울시 강남구\",\"dlv_addr2\":\"101동 101호\"}";
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RentmasterMyPageApi {
public static void main(String[] args) {
try {
String extId = "회원번호";
URL url = new URL("https://rentmaster.co.kr/api/v1/rent/my_list?ext_id=" + extId);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Bearer 발급받은_API_KEY");
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.OutputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RentmasterCancelApi {
public static void main(String[] args) {
try {
URL url = new URL("https://rentmaster.co.kr/api/v1/rent/cancel_reserve");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Bearer 발급받은_API_KEY");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonInputString = "{\"orderno\":\"주문번호\",\"ext_id\":\"회원번호\"}";
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import React, { useState, useEffect } from 'react';
// 프론트엔드에서는 브라우저 보안 및 IP 차단 문제를 피하기 위해
// 직접 Rentmaster API를 호출하지 않고, 내부 백엔드 서버(Proxy)를 호출합니다.
function ProductList() {
const [items, setItems] = useState([]);
useEffect(() => {
// 내부 백엔드 API (예: Node.js, Spring, PHP 등에서 작성한 프록시 엔드포인트)
fetch("/api/backend_proxy?endpoint=/item/list&page=1")
.then(res => res.json())
.then(data => {
if (data.success) {
setItems(data.data);
}
});
}, []);
return (
<div>
{items.map(item => (
<div key={item.itemcode}>
<h4>{item.itemname}</h4>
<p>재고: {item.available_stock}</p>
</div>
))}
</div>
);
}
export default ProductList;
import React, { useState, useEffect } from 'react';
function ProductDetail({ itemcode }) {
const [item, setItem] = useState(null);
useEffect(() => {
fetch(`/api/backend_proxy?endpoint=/item/detail&itemcode=${itemcode}`)
.then(res => res.json())
.then(data => {
if (data.success) setItem(data.data);
});
}, [itemcode]);
if (!item) return <div>Loading...</div>;
return (
<div>
<h1>{item.itemname}</h1>
<p>보유 바코드 수: {item.barcodes?.length}</p>
</div>
);
}
export default ProductDetail;
import React from 'react';
function ReserveForm() {
const handleReserve = async () => {
const payload = {
barcode: "바코드",
member_no: "회원번호",
target_date: "2023-12-31",
reserve_type: "delivery",
dlv_zipcode: "12345",
dlv_addr1: "서울시 강남구",
dlv_addr2: "101동 101호"
};
const res = await fetch("/api/backend_proxy?endpoint=/rent/reserve", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(payload)
});
const data = await res.json();
if (data.success) {
alert("예약이 완료되었습니다.");
} else {
alert(`예약 실패: ${data.error}`);
}
};
return (
<button onClick={handleReserve}>예약하기</button>
);
}
export default ReserveForm;
import React, { useState, useEffect } from 'react';
function MyPage({ memberNo }) {
const [list, setList] = useState([]);
useEffect(() => {
fetch(`/api/backend_proxy?endpoint=/rent/my_list&ext_id=${memberNo}`)
.then(res => res.json())
.then(data => {
if (data.success) setList(data.data);
});
}, [memberNo]);
return (
<ul>
{list.map(rent => (
<li key={rent.orderno}>
{rent.itemname} - {rent.status_name}
</li>
))}
</ul>
);
}
export default MyPage;
import React from 'react';
function CancelButton({ orderno, memberNo }) {
const handleCancel = async () => {
if (!window.confirm("예약을 취소하시겠습니까?")) return;
const res = await fetch("/api/backend_proxy?endpoint=/rent/cancel_reserve", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ orderno: orderno, ext_id: memberNo })
});
const data = await res.json();
if (data.success) {
alert("예약이 취소되었습니다.");
} else {
alert(`취소 실패: ${data.error}`);
}
};
return (
<button onClick={handleCancel}>예약 취소</button>
);
}
export default CancelButton;
Rentmaster API Test Portal
Powered by Etopia Co., Ltd.