1. 업비트 API 적용해보기

2025. 2. 5. 09:34·프로젝트/coin-trading

□ 업비트 API사용을 위한 key 발급
https://upbit.com/service_center/open_api_guide

 

Open API 안내 | 업비트(UPbit)

업비트에서는 개발자와 사용자를 위해 Open API를 제공하고 있습니다. 업비트 API를 통해 마켓정보, 잔고 조회, 주문, 출금 등 다양한 기능을 활용해보세요.

upbit.com

 

□ 의존성 추가

    // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
    implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14'

    // https://mvnrepository.com/artifact/com.auth0/java-jwt
    implementation group: 'com.auth0', name: 'java-jwt', version: '4.5.0'

□ JWT토큰 생성기

https://docs.upbit.com/docs/create-authorization-request

 

업비트 개발자 센터

 

docs.upbit.com

package coin.cointrading.util;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.UUID;

@Component
public class JwtTokenProvider {

    @Value("${upbit.access-key}")
    private String accessKey;
    @Value("${upbit.secret-key}")
    private String secretKey;

    public String createToken(){
        long expirationTime = 1000 * 60 * 60;  // 1 hour
        Date expirationDate = new Date(System.currentTimeMillis() + expirationTime);

        Algorithm algorithm = Algorithm.HMAC256(secretKey);
        String jwtToken = JWT.create()
                .withClaim("access_key", accessKey)
                .withClaim("nonce", UUID.randomUUID().toString())
                .withExpiresAt(expirationDate)
                .sign(algorithm);

        return "Bearer " + jwtToken;
    }
}

 

□ 계좌 조회하기

package coin.cointrading.service;

import coin.cointrading.dto.AccountResponse;
import coin.cointrading.util.JwtTokenProvider;
import lombok.RequiredArgsConstructor;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.util.List;

@Service
@RequiredArgsConstructor
public class TradingService {

    private final String serverUrl = "https://api.upbit.com";
    private final JwtTokenProvider jwtTokenProvider;
    private final RestTemplate restTemplate;

    public List<AccountResponse> getAccount() {
        String accountUrl = serverUrl + "/v1/accounts";
        HttpHeaders headers = new HttpHeaders();
        headers.set("Content-Type", "application/json");
        headers.set("Authorization", jwtTokenProvider.createToken());
        HttpEntity<?> entity = new HttpEntity<>(headers);

        return restTemplate.exchange(
                accountUrl,
                HttpMethod.GET,
                entity,
                new ParameterizedTypeReference<List<AccountResponse>>() {
                }).getBody();
    }

}

 

- 응답화면

'프로젝트 > coin-trading' 카테고리의 다른 글

5. EC2 프로그램 동작중... 앞으로의 개선방향  (0) 2025.02.18
4. 투자전략 변경 및 EC2 배포  (0) 2025.02.10
3. chatGPT 연동하기(투자 판단)  (0) 2025.02.08
2. 업비트 매매 API 적용  (0) 2025.02.07
0. 프로젝트 설계  (0) 2025.02.05
'프로젝트/coin-trading' 카테고리의 다른 글
  • 4. 투자전략 변경 및 EC2 배포
  • 3. chatGPT 연동하기(투자 판단)
  • 2. 업비트 매매 API 적용
  • 0. 프로젝트 설계
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java 제어자
    자료구조
    java enhance switch
    Java this
    데이터 타입
    java 유클리드 호제법
    java기초
    개발로드맵
    java arrays.copyofrnage()
    프로그래머스 java 기초트레이닝
    java 멤버
    java two-pointer
    데이터 크기
    java 에라토스테네스의 체
    프로그래머스 java 기초 트레이닝
    java 메서드
    java
    java super
    java 세수의합
    Java 생성자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
1. 업비트 API 적용해보기
상단으로

티스토리툴바