Eksempler
Brukseksempler for Hent prisliste. Endepunktet godtar bare POST og er begrenset til 20 forespørsler per minutt.
Ett land
country er alltid en matrise, også for ett enkelt land. Uten wallet returneres prislisten for hovedlommeboken.
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz"
]
}
Flere land samtidig
Én forespørsel kan be om flere land; svaret grupperer prislisten etter landskode.
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
Prisliste for en bestemt lommebok
wallet velger lommeboken prisene hører til. En lommebok som ikke er din, gir feilen invalid_wallet.
POST /api/1.0/price-list/get HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz"
],
"wallet": "bg1905014138000023"
}
Svaret er beskrevet i spesifikasjonen.
Kodeeksempler
Nedenfor finner du den samme forespørselen i ulike programmeringsspråk:
PHP
php.net
$context = stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode([
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb'],
], JSON_THROW_ON_ERROR),
'timeout' => 30,
'ignore_errors' => true,
]]);
$body = file_get_contents('https://portal.bulkgate.com/api/1.0/price-list/get', false, $context);
if ($body === false)
{
throw new RuntimeException('BulkGate API did not respond.');
}
$response = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
if (isset($response['error']))
{
throw new RuntimeException("BulkGate: {$response['error']} ({$response['type']})");
}
print_r($response['data']);
PHP cURL
php.net/curl
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://portal.bulkgate.com/api/1.0/price-list/get',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb'],
], JSON_THROW_ON_ERROR),
]);
$body = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error !== '')
{
throw new RuntimeException("BulkGate API: $error");
}
print_r(json_decode($body, true, flags: JSON_THROW_ON_ERROR));
PHP Guzzle
docs.guzzlephp.org
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
$client = new Client(['timeout' => 30, 'http_errors' => false]);
try
{
$result = $client->post('https://portal.bulkgate.com/api/1.0/price-list/get', ['json' => [
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb'],
]]);
}
catch (GuzzleException $e)
{
throw new RuntimeException('BulkGate: ' . $e->getMessage(), previous: $e);
}
print_r(json_decode((string) $result->getBody(), true, flags: JSON_THROW_ON_ERROR));
Go
go.dev
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
url := "https://portal.bulkgate.com/api/1.0/price-list/get"
payload := strings.NewReader(`{"application_id": 451, "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj", "country": ["cz", "sk", "gb"]}`)
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(body))
}
Python
python.org
import http.client, json
connection = http.client.HTTPSConnection('portal.bulkgate.com')
connection.request('POST', '/api/1.0/price-list/get', json.dumps({
'application_id': 451,
'application_token': 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country': ['cz', 'sk', 'gb'],
}), {
'Content-Type': 'application/json'
})
response = connection.getresponse()
print(response.status, response.read().decode())
Node.js
nodejs.org
const response = await fetch("https://portal.bulkgate.com/api/1.0/price-list/get", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": ["cz", "sk", "gb"]
}),
});
const result = await response.json();
if (result.error) {
throw new Error(`BulkGate: ${result.error} (${result.type})`);
}
console.log(result.data.price_list);
Java
java.net.http.HttpClient
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://portal.bulkgate.com/api/1.0/price-list/get"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("""
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}"""))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
Kotlin
kotlinlang.org
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
val payload = """
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
""".trimIndent()
val request = HttpRequest.newBuilder()
.uri(URI.create("https://portal.bulkgate.com/api/1.0/price-list/get"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build()
val response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString())
println("${response.statusCode()} ${response.body()}")
C# .NET
learn.microsoft.com
using System.Net.Http;
using System.Text;
var payload = """
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
""";
using var client = new HttpClient();
var response = await client.PostAsync(
"https://portal.bulkgate.com/api/1.0/price-list/get",
new StringContent(payload, Encoding.UTF8, "application/json"));
Console.WriteLine($"{(int) response.StatusCode} {await response.Content.ReadAsStringAsync()}");
C++ libcurl
curl.se/libcurl
#include <curl/curl.h>
#include <iostream>
#include <string>
static size_t collect(char *data, size_t size, size_t nmemb, std::string *out)
{
out->append(data, size * nmemb);
return size * nmemb;
}
int main()
{
const std::string payload = R"json(
{
"application_id": 451,
"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
"country": [
"cz",
"sk",
"gb"
]
}
)json";
CURL *curl = curl_easy_init();
if (curl == nullptr)
{
std::cerr << "curl_easy_init failed\n";
return 1;
}
curl_slist *headers = curl_slist_append(nullptr, "Content-Type: application/json");
std::string body;
curl_easy_setopt(curl, CURLOPT_URL, "https://portal.bulkgate.com/api/1.0/price-list/get");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, collect);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &body);
const CURLcode result = curl_easy_perform(curl);
long status = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &status);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
if (result != CURLE_OK)
{
std::cerr << curl_easy_strerror(result) << "\n";
return 1;
}
std::cout << status << " " << body << "\n";
return 0;
}
Ruby
ruby-lang.org
require 'json'
require 'net/http'
uri = URI('https://portal.bulkgate.com/api/1.0/price-list/get')
response = Net::HTTP.post(uri, {
'application_id' => 451,
'application_token' => 'NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj',
'country' => ['cz', 'sk', 'gb']
}.to_json, 'Content-Type' => 'application/json')
puts "#{response.code} #{response.body}"
Bash cURL
curl.se
curl --request POST \
--url https://portal.bulkgate.com/api/1.0/price-list/get \
--header 'Content-Type: application/json' \
--data '{"application_id": 451, "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj", "country": ["cz", "sk", "gb"]}'
Var denne siden nyttig?
Takk for tilbakemeldingen.