Zum Inhalt springen

SDK und CLI

exoCortex stellt drei Clients für die REST API v1 bereit. Sie laden sie direkt von der API herunter und fügen sie Ihrem Projekt hinzu:

Client Adresse Voraussetzungen
JavaScript https://exocortex-api.ai-exo-cortex.com/sdk/exocortex.js Eine Laufzeitumgebung mit fetch, zum Beispiel Node.js 18 oder höher
Python https://exocortex-api.ai-exo-cortex.com/sdk/exocortex.py Das Paket requests
Bash-CLI https://exocortex-api.ai-exo-cortex.com/sdk/exo-cli curl und jq

Alle lesen den API-Schlüssel, den Sie ihnen übergeben; keiner speichert ihn. Beim Eröffnen eines Tickets erzeugen sie automatisch einen Idempotency-Key.

import { ExoClient, ExoApiError } from './exocortex.js';
const exo = new ExoClient({ apiKey: process.env.EXO_API_KEY });
try {
const created = await exo.tickets.create({
subject: 'Printer offline',
description: 'Floor 2, room 204',
priority: 'Medium',
});
const { ticket } = await exo.tickets.get(created.ticket_key);
await exo.tickets.comment(ticket.key, 'Toner replaced.');
} catch (err) {
if (err instanceof ExoApiError && err.code === 'rate_limited') {
// nach err.retryAfter Sekunden erneut versuchen
} else throw err;
}

ExoApiError stellt status, code, retryAfter und den Body der Antwort in body bereit.

import os
from exocortex import ExoClient, ExoApiError
exo = ExoClient(api_key=os.environ['EXO_API_KEY'])
try:
created = exo.tickets.create(subject='Printer offline', description='Floor 2, room 204')
ticket = exo.tickets.get(created['ticket_key'])['ticket']
exo.tickets.comment(ticket['key'], 'Toner replaced.')
except ExoApiError as err:
print(err.status, err.code, err.retry_after)
Finestra del terminale
curl -fsSL https://exocortex-api.ai-exo-cortex.com/sdk/exo-cli -o exo-cli && chmod +x exo-cli
export EXO_API_KEY='nhk.<keyid>.<secret>'
./exo-cli ticket-create "Printer offline" "Floor 2, room 204" Medium
./exo-cli ticket-get ACME-1042
./exo-cli ticket-comment ACME-1042 "Toner replaced."

Mit EXO_BASE_URL richten Sie die CLI auf eine andere Adresse der API aus.

Die Klassen NHClient und NHError sind veraltete Aliase von ExoClient und ExoApiError. Das neue SDK sendet den Schlüssel in Authorization: Bearer und sendet den Tenant nicht mehr, da die API ihn aus dem Schlüssel ableitet. Die Helfer widgets und mapping wurden entfernt.