ํค์ REST API๋ฅผ ์ํ ํ๋์ ์ด๊ณ ์ง๊ด์ ์ธ ์์ ๋น๋๊ธฐ .NET ๋ํผ์ ๋๋ค.
๐ฎ ์ค์ ํฌ์ ์ ์ ๋ต์ ๊ฒ์ฆํ๊ณ ์ถ๋ค๋ฉด? ๋ชจ์ํฌ์ ๊ฒ์ ํ๋ซํผ ox64.app ์์ ๋จผ์ ํ ์คํธํด๋ณด์ธ์.
์ต์ C# async/await ํจํด์ ํ์ฉํ์ฌ ๋ธ๋กํน ์๋ ๊ณ ์ฑ๋ฅ API ํธ์ถ์ ๊ตฌํํฉ๋๋ค.
๊ณ์ ์ ๋ณด, ์ฐจํธ, ์ฃผ๋ฌธ, WebSocket ์ค์๊ฐ ๋ฐ์ดํฐ ๋ฑ 190๊ฐ ์ด์์ API๋ฅผ ์ง์ํฉ๋๋ค.
์ ์ฐฝํ API์ ๊ฐ๋ ฅํ ํ์ ์ง์ ์ผ๋ก ์ค๋ฅ๋ฅผ ์ต์ํํ๊ณ ๊ฐ๋ฐ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค.
์ ๊ทผ ํ ํฐ ๋ฐ๊ธ ๋ฐ ํ๊ธฐ๋ฅผ ํฌํจํ OAuth 2.0 ์ธ์ฆ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค.
์ฒด๊ฒฐ, ํธ๊ฐ, ์๊ณ ๋ฑ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ WebSocket์ผ๋ก ์์ ํ ์ ์์ต๋๋ค.
๊ธํ๋ฌผ ๊ฑฐ๋, ์๊ณ ์กฐํ, ์ฐจํธ ๋ฑ ๊ธํ๋ฌผ ๊ด๋ จ API๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํฉ๋๋ค.
16๊ฐ ์นดํ ๊ณ ๋ฆฌ์ ๊ฑธ์ณ 190๊ฐ ์ด์์ API ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ช ๋ถ ์์ KiwoomRestApi.Net์ ์์ํ ์ ์์ต๋๋ค.
using KiwoomRestApi.Net.Clients;
using KiwoomRestApi.Net.Enums.StockInfo;
// ํด๋ผ์ด์ธํธ ์์ฑ
var client = KiwoomRestApiClient.Create("YOUR_APP_KEY", "YOUR_SECRET_KEY", isMock: true);
// ์ผ์ฑ์ ์ ์ฃผ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
var stockInfo = await client.StockInfo.GetStockInfoAsync(
stockCode: "005930",
date: DateTime.Today,
marginLoanType: KiwoomStockInfoMarginLoanType.Loan
);
if (stockInfo.IsSuccess)
{
Console.WriteLine($"Stock: {stockInfo.Data?.StockName}");
Console.WriteLine($"Price: {stockInfo.Data?.CurrentPrice:N0} KRW");
}
else
{
Console.WriteLine($"Error: {stockInfo.ReturnMessage}");
}isMock: true๋ก ์ค์ ํ์ฌ ๋ชจ์ํฌ์ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ธ์. ํ๋ก๋์
์ค๋น๊ฐ ๋๋ฉด false๋ก ๋ณ๊ฒฝํ์ธ์.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ํ์ํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ชจ๋ REST API ๋ฉ์๋, ํ๋ผ๋ฏธํฐ, ์๋ต ๋ชจ๋ธ์ ๋ํ ์์ธ ๋ ํผ๋ฐ์ค์ ๋๋ค.
์ค์น๋ถํฐ ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊น์ง ๋จ๊ณ๋ณ ๊ฐ์ด๋์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ๊ณผ ๋ฌธ์ ํด๊ฒฐ ๊ฐ์ด๋์ ๋๋ค.
์์ค ์ฝ๋, ์ด์ ํธ๋์ปค, ๊ธฐ์ฌ ๊ฐ์ด๋์ ๋๋ค.