Lewati ke konten utama

C#

Mulai dari panduan gRPC untuk membuat token Platform API dan mengunduh platform.proto. Jalankan perintah di bawah dari direktori yang berisi berkas tersebut.

Buat proyek konsol .NET:

dotnet new console -n ReconstructExample

Masuk ke direktori proyek:

cd ReconstructExample

Tambahkan paket klien gRPC:

dotnet add package Grpc.Net.Client
dotnet add package Grpc.Tools
dotnet add package Google.Protobuf

Salin platform.proto yang diunduh ke direktori ReconstructExample.

Tambahkan item ini ke berkas .csproj proyek. Grpc.Tools menghasilkan klien saat Anda membangun:

<ItemGroup>
<Protobuf Include="platform.proto" GrpcServices="Client" />
</ItemGroup>

Gunakan tipe hasil dalam Program.cs:

using Cr.Reconstruct.External.Grpc;
using Grpc.Core;
using Grpc.Net.Client;

var token = Environment.GetEnvironmentVariable("CR_RECONSTRUCT_API_TOKEN")
?? throw new InvalidOperationException("Set CR_RECONSTRUCT_API_TOKEN.");
var address = Environment.GetEnvironmentVariable("CR_RECONSTRUCT_GRPC_URL")
?? "https://reconstruct.dev";

using var channel = GrpcChannel.ForAddress(address);
var client = new PlatformService.PlatformServiceClient(channel);
var headers = new Metadata { { "authorization", $"Bearer {token}" } };
var page = await client.ListCatalogsAsync(
new ListCatalogsRequest { PageSize = 10 }, headers, deadline: DateTime.UtcNow.AddSeconds(10));

foreach (var catalog in page.Catalogs)
{
var detail = await client.GetCatalogAsync(
new GetCatalogRequest { CatalogId = catalog.CatalogId }, headers);
Console.WriteLine($"{detail.CatalogId}: {detail.Description}");
}

Jalankan dotnet run. Kanal gRPC native memakai otoritas HTTPS; tidak menyertakan jalur REST /api/v1/platform.