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