Zum Inhalt

Proto-Definitionen

Die .proto-Dateien sind die maßgebliche Spezifikation der gRPC-Schnittstelle: Die REST-Routen werden daraus abgeleitet, das .NET SDK baut auf dem daraus generierten Vertrag auf. Für Sprachen ohne SDK erzeugst du die Client-Stubs aus diesen Dateien selbst.

Herunterladen

Stand Download
Entwicklungsstand (master, 5c1c11a8) zedal-protos-latest.zip
Release 1.3.0 zedal-protos-1.3.0.zip

Ein Release trägt die Version des NuGet-Pakets Zedal.GrpcApis, das dieselben .proto-Dateien enthält. Der Entwicklungsstand kann Änderungen enthalten, die noch in keinem Release stehen.

Aufbau

Die Ordner im Archiv entsprechen den Proto-Paketen. Die import-Anweisungen sind relativ zum obersten Ordner des Archivs, etwa import "core/v1/common_types.proto";; gib diesen Ordner deshalb als Include-Pfad an.

Die Dienste stehen in den Dateien *_api.proto, unter anderem:

Datei Dienste
core/v1/*_api.proto AuthApi, DocumentApi, DocumentTemplateApi, FileApi, CommonApi, MasterdataApi, QueryApi und weitere
bxa/diwass/v1/api/*_api.proto CompanyDocumentApi, AuthorityDocumentApi, DocumentBlockApi
bxa/bmu/v1/api/bmu_document_api.proto BmuDocumentApi
diwass/v1/api/*_api.proto OperatorApi, AuthorityApi, RetrievalApi, AttachmentApi, SoapProxyApi
provider_discovery/v1/api/discovery_api.proto DiscoveryApi
signer/sign/v1/api/*-api.proto, signer/cis/v1/api/certificate-info-api.proto, signer/v2/api/verify-api.proto SignerApi, SignerHandoffApi, SignerDeviceApi, SignerEntitlementApi, SignerSettingsApi, CertificateInfoApi, VerifyApi

Die Nachrichten stehen in den übrigen Dateien, die Dokumentmodelle unter documents/v1/. Die Annotationen, auf die die Protos verweisen (google/api, google/rpc, protoc-gen-openapiv2, openapiv3), liegen mit im Archiv. Die Standardtypen unter google/protobuf/ bringt der Protobuf-Compiler mit.

Stubs erzeugen

Beispiel für Python mit grpcio-tools, im Ordner mit dem entpackten Archiv:

pip install grpcio-tools
mkdir -p generated
python -m grpc_tools.protoc -I zedal-protos-<version> \
  --python_out=generated --grpc_python_out=generated \
  $(find zedal-protos-<version> -name '*.proto')

Der Zielordner muss vorher existieren. Danach liegen die Module unter generated/, etwa generated/core/v1/auth_api_pb2_grpc.py mit AuthApiStub. Für andere Sprachen gilt dasselbe mit protoc und dem Plugin der Sprache.

Endpunkte, Authentifizierung und Timeouts stehen unter gRPC.