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, voirdocs/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 :
Moneyavecint64 cents(jamaisdouble/float, regle R14). - Pourcentages :
Percentageen basis points (1/1_000_000). - Quantites fractionnaires :
Quantityen milli_units (1 unite = 1000). - Timestamps :
google.protobuf.Timestamp(UTC). - Erreurs :
google.rpc.StatusavecErrorDetaildansdetails[].
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
optionalproto3. - 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.