MASAR DevelopersPARTNER API v1
MASAR DEVELOPER PLATFORM

تطبيقات المكتب

أمثلة عملية لـC# وVB.NET وWinDev وDelphi وJava وPowerShell مع توجيهات حماية المفتاح.

v1.0Read-onlyHTTPSJSON

متى يمكن الاتصال مباشرة؟

في تطبيق مكتب داخلي تتحكم المؤسسة في أجهزته، يمكن الاتصال مباشرة مع تخزين المفتاح في مخزن أسرار مناسب. إذا كان البرنامج يوزع خارج المؤسسة، استخدم خادمًا وسيطًا كما في تطبيقات الموبايل.

C# / .NET

using System.Net.Http.Headers;
using System.Text.Json;

using var http = new HttpClient { BaseAddress = new Uri("https://api.masardz.com/api/v1/partner/") };
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("MASAR_API_KEY"));
http.DefaultRequestHeaders.Accept.ParseAdd("application/json");

using var response = await http.GetAsync("buses?page=1&per_page=25");
var json = await response.Content.ReadAsStringAsync();
response.EnsureSuccessStatusCode();
using var doc = JsonDocument.Parse(json);
Console.WriteLine(doc.RootElement.GetProperty("data").GetProperty("items"));

VB.NET

Imports System.Net.Http
Imports System.Net.Http.Headers

Dim client As New HttpClient()
client.BaseAddress = New Uri("https://api.masardz.com/api/v1/partner/")
client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("MASAR_API_KEY"))
Dim response = Await client.GetAsync("buses?page=1&per_page=25")
Dim body = Await response.Content.ReadAsStringAsync()
response.EnsureSuccessStatusCode()
Console.WriteLine(body)

WinDev / WLanguage

req is httpRequest
req.URL = "https://api.masardz.com/api/v1/partner/buses?page=1&per_page=25"
req.Method = httpGet
req.Header["Authorization"] = "Bearer " + gsMASARApiKey
req.Header["Accept"] = "application/json"

res is httpResponse = HTTPSend(req)
IF ErrorOccurred THEN
    Error(ErrorInfo(errFullDetails))
    RETURN
END
IF res.StatusCode <> 200 THEN
    Error("MASAR HTTP " + res.StatusCode)
    RETURN
END
Info(res.Content)

قد تختلف أسماء خصائص HTTP قليلًا حسب إصدار WinDev؛ المبدأ ثابت: GET + Authorization Bearer + فحص StatusCode.

Delphi / Object Pascal

uses System.SysUtils, System.Net.HttpClient, System.Net.URLClient;

var Client: THTTPClient;
var Response: IHTTPResponse;
begin
  Client := THTTPClient.Create;
  try
    Response := Client.Get(
      'https://api.masardz.com/api/v1/partner/buses?page=1&per_page=25',
      nil,
      [TNameValuePair.Create('Authorization', 'Bearer ' + GetEnvironmentVariable('MASAR_API_KEY')),
       TNameValuePair.Create('Accept', 'application/json')]
    );
    if Response.StatusCode <> 200 then
      raise Exception.CreateFmt('MASAR HTTP %d', [Response.StatusCode]);
    Writeln(Response.ContentAsString(TEncoding.UTF8));
  finally
    Client.Free;
  end;
end.

Java Desktop

import java.net.URI;
import java.net.http.*;

var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("https://api.masardz.com/api/v1/partner/buses?page=1&per_page=25"))
    .header("Authorization", "Bearer " + System.getenv("MASAR_API_KEY"))
    .header("Accept", "application/json")
    .GET().build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() != 200) throw new RuntimeException("MASAR HTTP " + response.statusCode());
System.out.println(response.body());

PowerShell

$headers = @{
  Authorization = "Bearer $env:MASAR_API_KEY"
  Accept = "application/json"
}
$response = Invoke-RestMethod -Method Get -Uri "https://api.masardz.com/api/v1/partner/buses?page=1&per_page=25" -Headers $headers
$response.data.items