Client-Bibliotheken und Postman
Offizielle API-Clients für PHP, Node.js und Python, generiert aus dem OpenAPI-Dokument, und eine fertige Postman-Sammlung.
Zur besseren Verständlichkeit übersetzt. Code, Feldnamen und die API-Referenz bleiben auf Englisch. Englische Fassung
Jede Operation der REST-API-Referenz ist eine Methode in den offiziellen Clients. Die Methodentabellen werden aus demselben OpenAPI-Dokument generiert wie die Referenz, sodass ein neuer Endpunkt alle drei Bibliotheken gleichzeitig erreicht. Die Clients senden Ihren API-Token als Bearer-Token, wiederholen 429 und 503 nach Retry-After, werfen einen Fehler mit dem Problem-Detail der API und blättern für Sie durch Sammlungen. Sie haben keine Abhängigkeiten außer der Standardbibliothek der Sprache.
Aufrufe nehmen einen Satz Parameter: Pfadparameter (id), body (der JSON-Request-Body) und beliebige Query-Parameter.
PHP
composer require chaosdesk/chaosdesk-php
$client = new ChaosDesk\Client('https://acme.example.com', getenv('CHAOSDESK_TOKEN'));
$ticket = $client->tickets->create(['body' => ['subject' => 'Printer on fire', 'description' => 'Help']]);
$client->tickets->update(['id' => $ticket['id'], 'body' => ['status' => 'pending']]);
foreach ($client->paginate($client->tickets->list(...), ['status' => 'open']) as $open) {
echo $open['subject'], PHP_EOL;
}
Node.js
npm install @chaosdesk/api
import { ChaosDesk } from "@chaosdesk/api";
const client = new ChaosDesk({ baseUrl: "https://acme.example.com", token: process.env.CHAOSDESK_TOKEN });
const ticket = await client.tickets.create({ body: { subject: "Printer on fire", description: "Help" } });
await client.tickets.update({ id: ticket.id, body: { status: "pending" } });
for await (const open of client.paginate(client.tickets.list, { status: "open" })) {
console.log(open.subject);
}
TypeScript-Typen für jede Ressource und Methode werden mit dem Paket ausgeliefert.
Python
pip install chaosdesk
from chaosdesk import ChaosDesk
client = ChaosDesk("https://acme.example.com", token=os.environ["CHAOSDESK_TOKEN"])
ticket = client.tickets.create(body={"subject": "Printer on fire", "description": "Help"})
client.tickets.update(id=ticket["id"], body={"status": "pending"})
for open_ticket in client.paginate(client.tickets.list, status="open"):
print(open_ticket["subject"])
Die Zendesk-kompatible API
Jeder Client hat außerdem eine rohe request-Methode für jeden Pfad, auch für die Zendesk-kompatible API:
await client.request("GET", "/zd/api/v2/tickets.json", { query: { per_page: 100 } });
Postman
Importieren Sie clients/postman/chaosdesk.postman_collection.json aus dem Repository. Setzen Sie die Sammlungsvariablen baseUrl (Ihr Workspace) und token (ein API-Token aus Admin Center, Integrations, API tokens). Die Anfragen sind nach Ressource gruppiert.
Änderungen
Was sich an der API geändert hat, Version für Version, steht im API-Änderungsprotokoll.