Jak działa API
Koniec punktu API
Wszystkie żądania API powinny być wysyłane do następującego punktu końcowego API:
https://api.cryptohopper.com/v1/
Obsługiwane Metody Żądań
GET Użyj GET, by pobrać zasób lub zestaw zasobów (np. listę wszystkich botów handlowych, bieżące zlecenia lub listę ostatnich transakcji). Ta metoda jest bezpieczna i idempotentna.
POST Użyj POST do utworzenia zasobów. Na przykład: zmień nowe zlecenie kupna/sprzedaży, stwórz nowego bota handlowego.
PATCH Użyj PATCH do zaktualizowania zasobów. Na przykład: uruchom lub zatrzymaj swojego bota handlowego, lub zaktualizuj swoje dane osobowe. Dzięki temu metodzie musisz podać tylko pola, które chcesz zmodyfikować w ciele żądania.
DELETE Użyj USUŃ, gdy chcesz usunąć zasób.
Parametry żądania
Dostępne są cztery rodzaje parametrów wykorzystywanych w naszej API: ścieżka, ciąg zapytania, nagłówek i ciało żądania. Parametry ciała żądania to dane przesyłane w ciele żądania JSON dla żądań POST i PATCH. Parametry nagłówka to oczywiście parametry, które muszą być umieszczone w nagłówku. Więcej informacji o parametrach nagłówka, ścieżki i ciągu zapytania znajdziesz poniżej.
Parametry nagłówka
Każdy żądanie do naszej API wymaga uwierzytelnienia poprzez wysłanie następujących wartości w nagłówku:
- access-token - Twój token dostępu otrzymano z uwierzytelnienia Oauth2
Parametry ścieżki
To są parametry podawane w URI punktu końcowego. Na przykład punkt końcowy GET Hopper:
https://api.cryptohopper.com/v1/hopper/{hopper_id}
Aby pobrać bota handlowego po jego unikalnym ID, musisz zastąpić jego wartość ID w polu zastępczym {hopper_id}. Na przykład, aby pobrać bota handlowego o ID 37, potrzebujesz takiego adresu URL:
https://api.cryptohopper.com/v1/hopper/37
Niektóre punkty końcowe wymagają wielu parametrów. Na przykład, jeśli chcesz zwrócić konkretne zlecenie z poprzedniego Hoppera, musisz wywołać następujący adres URL:
https://api.cryptohopper.com/v1//hopper/{hopperId}/order/{orderId}
I zastępując parametry Hopperem i ID zlecenia otrzymasz:
https://api.cryptohopper.com/v1//hopper/37/order/231
Aby uzyskać szczegółową listę parametrów wymaganych w każdym punkcie końcowym API, zapoznaj się z naszą dokumentacją API.
Parametry zapytania
Używamy takich parametrów w żądaniach GET do filtrowania i/lub paginacji danych. Parametry te nie są określone w ścieżce, ale jako zestaw wartości oddzielonych znakiem '&' w ciągu URL.
Na przykład, aby pobrać zlecenia kupna Bitcoinów dla robota handlowego, możesz wywołać punkt końcowy Hopper Order w ten sposób:
https://api.cryptohopper.com/v1/hopper/37/order/?order_type=buy&coin=btc
Patrząc na naszą referencję API, widzisz, że w tym przypadku parametr order_type może przyjmować wartości 'kup' lub 'sprzedaj', a parametr coin może być dowolnym kodzie kryptowaluty w małej literze.
Format odpowiedzi
Wszystkie odpowiedzi są w formacie obiektu JSON. Zatem typ MIME w naszych odpowiedziach to application/json. Sprawdź naszą dokumentację referencji API, aby dowiedzieć się o specyficznym formacie JSON odpowiedzi w treści każdego żądania i odpowiedzi.
Kod odpowiedzi HTTP
Używamy kodów statusu odpowiedzi zdefiniowanych w standardach RFC 2616 i RFC 6585..
200 - OK Poprawny żądanie. Klient dostaje wynik żądania w treści i nagłówkach odpowiedzi.
201 – Created Żądanie zaakceptowane i utworzono nowy zasób.
202 – Accepted Żądanie zaakceptowane do przetworzenia, ale przetwarzanie nie zostało zakończone.
204 – No Content Serwer poprawnie przetworzył żądanie, ale nie zwraca żadnej zawartości.
304 – Not Modified Zasób nie został zmodyfikowany od wersji określonej w nagłówkach żądania If-Modified-Since lub If-None-Match. Nie ma potrzeby ponownego przesyłania zasobu, ponieważ klient ma wciąż pobraną kopię.
Kody błędów HTTP
400 – Bad Request Serwer nie może lub nie chce przetworzyć żądania z powodu widocznego błędu klienta. Treść wiadomości zwróci informacje o błędzie.
400 – Bad Request Serwer nie może lub nie chce przetworzyć żądania z powodu widocznego błędu klienta. Treść komunikatu zwróci informacje o błędzie.
401 – Unauthorized Żądanie wymaga uwierzytelnienia użytkownika i zostało odrzucone z powodu nieprawidłowych lub brakujących danych uwierzytelniających API.
403 – Forbidden Serwer zrozumiał żądanie, ale odmawia jego realizacji, bo nie masz do niego dostępu lub Twoje uprawnienia zostały cofnięte.
404 – Not found Nie znaleziono żądanego zasobu. Błąd ten może być spowodowany tymczasowym lub trwałą awarią.
405 – Method Not Allowed Nieobsługiwana metoda żądania przez żądany punkt końcowy API.
405 – Method Not Allowed Nieobsługiwana metoda żądania przez żądany punkt końcowy API.
429 – Too Many Request Użytkownik przekroczył limit żądań API. Sprawdź nagłówek Retry-After, aby dowiedzieć się, ile sekund musisz poczekać, aby wysłać nowe żądanie. Zajrzyj do sekcji limitów żądań, aby poznać aktualne limity.
500 – Internal Server Error Problem z naszym serwerem uniemożliwił obsłużenie twojego żądania. Nasi deweloperzy stracą kawę na tydzień jako pierwsze ostrzeżenie...
503 – Service Unavailable Nasze serwery mogą mieć problem i nie będą w stanie zrealizować twojego żądania.
Wiadomości o błędach
Kiedy API zwróci kod błędu, dołączy obiekt JSON z opisem błędu w swoim ciele. Komunikat błędu będzie wyglądał mniej więcej tak:
{
"status": 400,
"error": 1,
"message": "Missing required request parameters: [access_token]"
}
Limity
Nasza API ma limit dotyczący szybkości żądań, aby zapewnić wszystkim użytkownikom równy dostęp do zasobów przepustowości. Aktualne limity to 2 żądania na sekundę na użytkownika, z wyjątkiem zleceń kupna. W przypadku zleceń kupna możesz umieścić maksymalnie jedno zlecenie co 8 sekund.
Jeśli przekroczysz limit żądań na sekundę, otrzymasz kod odpowiedzi 429. Sprawdź nagłówek Retry-After w odpowiedzi, który zawiera czas oczekiwania w sekundach, zanim będziesz mógł wysłać kolejne żądanie.