API가 어떻게 작동하는지

API 엔드포인트

모든 API 요청은 다음 API 엔드포인트로 해야 합니다:

https://api.cryptohopper.com/v1/

지원되는 요청 메서드

GET GET을 사용하여 자원(예: 모든 트레이딩봇 목록, 현재 오더, 최근 거래 내역)을 가져옵니다. 이 방식은 안전하고 이중적입니다.

POST POST를 이용하여 리소스를 생성하세요. 예를 들어, 새로운 매수/매도 주문을 등록하거나 새로운 거래봇을 생성하세요.

PATCH PATCH를 이용해서 자원을 업데이트해 보세요. 예를 들어, 거래봇을 시작하거나 중지하거나, 개인 정보를 업데이트하는 데 사용할 수 있어요. 이 방법으로는 요청 본문에 수정하고 싶은 필드만 제공하면 돼요.

DELETE 자원을 삭제하려면 삭제를 사용하세요.

요청 파라미터

API에서 사용하는 네 가지 매개변수 유형이 있습니다: 경로, 쿼리 문자열, 헤더 및 요청 본문 매개변수입니다. 요청 본문 매개변수는 POST 및 PATCH 요청의 JSON 요청 본문에 게시된 데이터입니다. 헤더 매개변수는 당연히 헤더에 게시해야 하는 매개변수입니다. 헤더, 경로 및 쿼리 문자열 매개변수에 대한 자세한 내용은 아래에서 확인할 수 있습니다.

헤더 파라미터

우리 API에 대한 모든 요청은 헤더에 다음 값들을 포스팅하여 인증해야 합니다.

  • access-token - OAuth2 인증으로 받은 접근 토큰입니다.

경로 매개변수

이들은 엔드포인트의 URI에 제공되는 매개변수입니다. 예를 들어 GET Hopper 엔드포인트:

https://api.cryptohopper.com/v1/hopper/{hopper_id}

트레이딩봇을 고유 ID로 검색하려면 {hopper_id} 자리에 해당 ID 값을 넣어야 해. 예를 들어, ID가 37인 트레이딩봇을 가져오려면 다음 URL을 요청해야 해:

https://api.cryptohopper.com/v1/hopper/37

일부 엔드포인트는 여러 매개변수가 필요합니다. 예를 들어 이전 혹퍼에서 특정 주문을 반환하려면 다음 URL을 호출해야 합니다.

https://api.cryptohopper.com/v1//hopper/{hopperId}/order/{orderId}

그리고 호퍼와 주문 ID를 매개변수로 바꿔주면:

https://api.cryptohopper.com/v1//hopper/37/order/231

각 API 엔드포인트에서 필요한 매개변수의 자세한 목록은 API 참조 가이드를 참고하세요.

쿼리 문자열 매개변수

이러한 종류의 매개변수는 데이터 필터링 및/또는 페이징을 위한 GET 요청에 사용합니다. 이러한 매개변수는 경로에 명시되지 않고 URL 문자열에서 ‘&’ 문자로 구분된 값 세트로 지정됩니다.

예를 들어, 거래 로봇의 비트코인 매수 주문을 가져오려면, Hopper 주문 엔드포인트를 다음과 같이 호출할 수 있습니다.

https://api.cryptohopper.com/v1/hopper/37/order/?order_type=buy&coin=btc
        

API 참조를 보면, 이 경우 order_type 매개변수는 ‘buy’ 또는 ‘sell’ 값을 가질 수 있으며, coin 매개변수는 모든 소문자 암호화폐 코인 코드일 수 있습니다.

응답 형식

모든 응답은 JSON 객체 형식으로 제공됩니다. 따라서 모든 응답에서 볼 수 있는 MIME 종류는 application/json입니다. 각 요청 및 응답 본문의 구체적인 JSON 응답 형식은 API 참조 문서를 참고하세요.

HTTP 응답 코드

우리는 RFC 2616 및 RFC 6585 표준에서 정의된 응답 상태 코드를 활용합니다..

200 - OK 요청 성공. 클라이언트는 응답 본문과 헤더에 요청 결과를 받습니다.

201 – Created 요청이 승인되었으며 새로운 자원이 생성되었습니다.

202 – Accepted 요청이 처리를 위해 승인되었지만, 처리가 완료되지 않았습니다.

204 – No Content 서버가 요청을 성공적으로 처리했지만, 내용은 반환되지 않습니다.

304 – Not Modified 요청 헤더 If-Modified-Since 또는 If-None-Match에 명시된 버전 이후 자원이 수정되지 않았습니다. 클라이언트가 이전에 다운로드한 복사본을 가지고 있으므로 자원을 재전송할 필요가 없습니다.

HTTP 에러 코드

400 – Bad Request 서버가 클라이언트 에러로 요청을 처리할 수 없거나 처리하지 않을 예정입니다. 에러 정보는 메시지 본문에 반환될 예정입니다.

400 – Bad Request 서버가 클라이언트 에러로 요청을 처리할 수 없거나 거부합니다. 에러 정보는 메시지 본문에 반영됩니다.

401 – Unauthorized 요청에 사용자 인증이 필요하며, API 자격 증명이 잘못되었거나 누락되어 거부되었습니다.

403 – Forbidden 서버가 요청을 이해했지만, 접근 권한이 없거나 자격 증명이 취소되어 처리를 거부합니다.

404 – Not found 요청한 리소스를 찾을 수 없습니다. 이 오류는 일시적이거나 영구적인 문제 때문일 수 있습니다.

405 – Method Not Allowed 사용된 요청 방식은 요청된 API 엔드포인트에서 지원되지 않습니다.

405 – Method Not Allowed 사용된 요청 방식은 요청된 API 엔드포인트에서 지원되지 않습니다.

429 – Too Many Request 사용자는 API 요청 속도 제한을 초과했습니다. Retry-After 헤더를 확인하여 새 요청을 보낼 때까지 기다려야 하는 시간(초)을 알아보세요. 현재 요청 제한은 우리의 요청 제한 섹션에서 확인하실 수 있습니다.

500 – Internal Server Error 서버에서 에러가 발생하여 요청을 처리할 수 없습니다. 개발자들은 첫 경고로 일주일 동안 커피를 못 마십니다...

503 – Service Unavailable 저희 서버에 문제가 발생하여, 귀하의 요청을 처리할 수 없습니다.

오류 메시지

API가 에러 코드를 반환할 때마다, 에러 설명이 담긴 JSON 객체를 본문에 붙입니다. 에러 메시지는 다음과 같습니다.

{
            "status": 400,
            "error": 1,
            "message": "Missing required request parameters: [access_token]"
        }
        

요금 제한

저희 API는 모든 사용자에게 밴드위스 자원을 공평하게 제공하기 위해 요청 속도 제한을 두고 있습니다. 현재 제한은 1초에 사용자당 2개의 요청이며, 매수 주문 시에는 제한이 8초에 1개의 주문으로 낮아집니다.

초당 허용 요청 수를 초과하면 429 에러 응답 코드가 반환됩니다. 응답에 포함된 Retry-After 헤더를 확인하여 다음 요청을 보낼 수 있기까지 기다려야 하는 시간을 확인하세요.