SDK StillDeep — Generer un POSClient dans n'importe quel langage

Générer un client StillDeep dans n'importe quel langage à partir des fichiers .proto.

E005 livre les contrats .proto. Ce guide explique comment generer un client. Pour la reference WinForms .NET, voir docs/client-reference.md.

Vue d'ensemble

Tout client UI POS dialogue avec POSIntelligenceSvc via gRPC HTTP/2 sur localhost:50051 (defaut). L'API publique stable est composee de cinq services :

Service Description .proto
SalesService panier, paiement, finalisation sales.proto
CatalogService produits, categories, taxes catalog.proto
MemberService members, memberships, wallets member.proto
DeviceService imprimantes, scanners, terminaux device.proto
EventService streaming temps reel des events de vente events.proto

Tous partagent les types definis dans common.proto (Money, Quantity, Percentage, Pagination, ...).

Conventions imposees

  • Namespace stilldeep.v1.* — un eventuel V2 sera un namespace separe (jamais de breaking change V1).
  • Montants : Money avec int64 cents (jamais double / float, regle R14).
  • Pourcentages : Percentage en basis points (1/1_000_000).
  • Quantites fractionnaires : Quantity en milli_units (1 unite = 1000).
  • Timestamps : google.protobuf.Timestamp (UTC).
  • Erreurs : google.rpc.Status avec ErrorDetail dans details[].

Recuperer les .proto

Le code de StillDeep est prive ; le contrat des clients est public et versionne. Le site officiel publie ses .proto (stilldeep.v1, tous sauf pos_proxy.proto, reserve aux postes et a Server.Service) en une archive : /downloads/stilldeep-contracts.zip. Les clients .NET prennent le NuGet StillDeep.Intelligence.Contracts.

curl -fsSLO https://<adresse-du-site>/downloads/stilldeep-contracts.zip
unzip stilldeep-contracts.zip && cp -r stilldeep-contracts/protos ./protos

Guides par langage

Langage Guide
TypeScript / Node.js typescript.md
Python 3 python.md
Go go.md
.NET utiliser le NuGet StillDeep.Intelligence.Contracts directement

Les autres langages supportes par gRPC officiel (Java, Kotlin, C++, Rust, Ruby, PHP, Dart, Swift) suivent le meme pattern : protoc --proto_path=./protos --<lang>_out=./generated protos/*.proto.

Versioning

  • Pas de breaking change V1. Tout nouveau champ est ajoute en optional proto3.
  • Un champ ne sera jamais retire avant 2 versions majeures en mode deprecated.
  • Si vous avez besoin d'une rupture, c'est un stilldeep.v2.* separe.

Voir E005 pour le contrat complet.