Exemples JavaScript
Exemples Node.js exécutables pour l’API gRPC de KiloCenter — installez @grpc/grpc-js avec chargement dynamique des proto, appelez les méthodes.
Cette page fournit des exemples Node.js exécutables pour l’API gRPC KiloCenter à l’aide du chargement dynamique des fichiers proto. Pour la référence complète de l’API, voir la Référence de l’API.
Pour la documentation générale de gRPC pour Node.js, voir grpc.io/docs/languages/node.
Prérequis
Toutes les commandes de ce guide supposent que votre répertoire de travail est
kilocenter-modules/.
Installez les packages gRPC et proto-loader :
npm install @grpc/grpc-js @grpc/proto-loaderAucune génération de stub n’est nécessaire — @grpc/proto-loader charge .proto fichiers à l’exécution. Assurez-vous que les fichiers proto sont accessibles aux chemins indiqués ci-dessous (par rapport à la racine du dépôt KiloCenter) :
KC-Core/api/proto/kilocenter.protoKC-Core/api/proto/core.protoKC-Core/api/proto/identity.proto
Obtenir l’état du système
Récupère l’état actuel du système, y compris la version, la durée de fonctionnement et l’état de santé des services.
const grpc = require("@grpc/grpc-js");
const protoLoader = require("@grpc/proto-loader");
// Point de terminaison gRPC KC-Gateway de KiloCenter
const server = "localhost:9090";
const packageDef = protoLoader.loadSync("KC-Core/api/proto/kilocenter.proto", {
keepCase: false,
longs: String,
enums: String,
defaults: true,
oneofs: true,
includeDirs: ["KC-Core/api/proto"],
});
const proto = grpc.loadPackageDefinition(packageDef);
const client = new proto.kilocenter.api.v1.KiloCenterService(
server,
grpc.credentials.createInsecure()
);
client.GetSystemStatus({}, (err, resp) => {
if (err) {
console.error("Échec de GetSystemStatus :", err.message);
process.exit(1);
}
console.log("Version : ", resp.version);
console.log("État : ", resp.status);
console.log("Durée de fonctionnement :", resp.uptime);
console.log("Points de terminaison actifs :", resp.activeEndpoints);
console.log("Stations de base actives :", resp.activeBasestations);
console.log("Messages traités : ", resp.messagesProcessed);
for (const svc of resp.services) {
console.log(` Service : ${svc.name} healthy=${svc.healthy} latency=${svc.latencyMs}ms`);
}
});Lister les points de terminaison
Répertorie les points de terminaison enregistrés avec prise en charge de la pagination. Profil à fort volume : taille de page par défaut 100, maximum 1000.
Authentification
Édition communautaire
L’Édition communautaire fonctionne en mode mono-locataire avec l’authentification et l’application des organisations désactivées (auth.enabled: false, org_enforcement_enabled: false). Les exemples ci-dessus fonctionnent sans aucun en-tête.
Entreprise : principal utilisateur JWT
Nécessite trois en-têtes : authorization, x-organization-id, et x-user-id. La x-user-id la valeur doit correspondre à l’utilisateur authentifié dans le JWT. L’absence de x-user-id renvoie ErrTokenUserIDHeaderRequired; une discordance renvoie ErrTokenIdentityMismatch.
Entreprise : clé API de compte de service
Nécessite deux en-têtes : authorization et x-organization-id. Ne pas envoyez x-user-id — son inclusion renvoie ErrTokenIdentityMismatch pour empêcher l’injection d’utilisateur.
Mis à jour