Bureau des développeurs

Construisez votre propre surface de contrôle

Un contrat API préparé pour un futur plan de contrôle : ressources, portées, limites et gestion des événements.

Explorer les détails

Contenu révisé · Français

En un coup d'œil
État du contrat
Préparé, non servi
Lire la limite
60 / minute

Allocation de rafale proposée ×2.

Limite d'écriture
20 / minute

Allocation de rafale proposée ×2.

Retrait de version
6 mois de préavis

Fenêtre de dépréciation proposée.

LA PARTIE UTILE

Gardez ces éléments en vue.

  • Il n'y a pas d'origine API en production ni de SDK fonctionnel derrière cette page.
  • Séparez les lectures de ressources des modifications avec des portées à moindre privilège.
  • Utilisez des requêtes idempotentes et des événements signés avant d'automatiser la facturation ou la livraison.
01

Commencez avec un modèle de ressources petit et stable

Le contrat de version un proposé sépare les ressources du catalogue des ressources du compte. Les emplacements et les forfaits prennent en charge la configuration. Les services représentent les configurations acceptées et l'état d'exécution. La facturation contient les factures et l'état des paiements. Les tickets prennent en charge une conversation de support traçable. Le site web met en œuvre ses propres formulaires et espace de travail ; les exemples ci-dessous sont un contrat de conception, et non des routes vers un API public.

02

Les identifiants appartiennent à une portée

Le modèle d'authentification préparé utilise un jeton Bearer dans l'en-tête Authorization. Les portées de catalogue ou de service en lecture seule ne devraient pas pouvoir créer, reconstruire ou annuler un service. Les portées d'écriture nécessitent une décision distincte et un chemin de révocation. Conservez les identifiants dans un environnement serveur privé et n'intégrez jamais un jeton secret dans une page ou un bundle de navigateur.

Forme de requête préparée · aucun hôte actifÀ examiner pour votre environnement
GET /v1/services
Authorization: Bearer <private-token>
Accept: application/json

# Proposed scope: services:read
03

Cinq opérations illustratives

Utilisez un identifiant stable pour chaque ressource et un identifiant de requête pour le support. Les appels mutants doivent prendre une clé d'idempotence afin qu'une nouvelle tentative puisse être réconciliée au lieu de créer une autre commande.

Charge utile de création préparéeÀ examiner pour votre environnement
POST /v1/services
Idempotency-Key: <one-key-per-request>

{
  "plan_id": "umbra-1",
  "location": "iceland",
  "billing_cycle": "monthly",
  "image": "Ubuntu"
}
Opérations préparées, pas de points de terminaison actifs
OpérationRequête illustrativePortée requiseRésultat
Listez les servicesGET /v1/servicesservices:readÉléments et curseur
Lire les emplacementsGET /v1/locationscatalogue:readMétadonnées régionales
Lire les forfaitsGET /v1/planscatalogue:readCapacité, cycles et compatibilité
Créer une demande de servicePOST /v1/servicesservices:writeDemande acceptée et état actuel
Lire une factureGET /v1/billing/invoices/{id}billing:readTotal et état du paiement
04

Limites et enveloppe d'erreur utile

Les limites de débit proposées au niveau du compte sont de 60 lectures par minute et de 20 écritures par minute, avec une tolérance de rafale du double de ces valeurs. Une requête rejetée renvoie HTTP 429 avec Retry-After ; l'automatisation doit attendre comme indiqué et appliquer un backoff. Les erreurs doivent inclure un code stable, un message lisible par l'homme et un request_id, avec les détails sensibles supprimés.

Exemple d'erreur préparéÀ examiner pour votre environnement
{
  "error": {
    "code": "unsupported_location",
    "message": "This plan is not listed in that region.",
    "request_id": "req_example"
  }
}
05

Événements, signatures et nouvelles tentatives sûres

Le modèle de webhook préparé couvre le paiement des factures, la disponibilité du service, la suspension et les mises à jour des tickets. La livraison doit comporter un ID d'événement et un horodatage, avec une signature HMAC-SHA256 vérifiée sur le corps de la requête d'origine à l'aide d'un secret de signature privé. Rejetez les signatures obsolètes ou invalides, dédupliquez les ID d'événement et n'accusez réception qu'après acceptation durable de l'événement. Les consommateurs doivent tolérer une livraison dans le désordre et répétée.

06

Versionner le contrat avant de le modifier

Le chemin API proposé inclut sa version majeure. Les modifications additives devraient préserver les clients existants ; les modifications incompatibles nécessitent une nouvelle version et un préavis de retrait de six mois pour l'ancienne. La disponibilité, les SDK et un hôte de production API ne doivent être publiés qu'après examen de l'intégration et de la sécurité.

07

La limite de paiement implémentée

L'application de compte dispose de demandes de paiement à adresse fixe et de devis serveur USD expirants. L'observation des transactions est une intégration de confiance côté serveur uniquement ; il n'existe aucun point de terminaison public de confirmation, aucun moniteur de blockchain connecté ni worker de provisionnement. L'interrogation par le navigateur lit l'état de paiement existant du client connecté et ne peut pas attester d'une transaction. L'API publique illustrative et le contrat de webhook ci-dessus restent des travaux de conception futurs.

  • Protéger la logique de débit et d’observation sur le serveur.
  • Associez les destinations de réception réutilisées à une transaction vérifiée et à une référence de commande explicite.
  • Gardez le payé et le provisionné séparés ; une transaction vérifiée ne doit pas créer de matériel fictif.
AVANT L'ÉTAPE SUIVANTE

Une dernière vérification pratique.

  • Séparer les jetons en lecture seule et en écriture.
  • Conservez un ID de requête, sans journaliser de secrets ni d'identifiants complets.
  • Traiter un délai d'attente réseau comme un résultat incertain ; réconcilier avant de réessayer.
  • Vérifiez les signatures d'événements avant de mettre à jour une commande.
UN PEU PLUS DE CONTEXTE

Questions, réponses.

Puis-je utiliser ces exemples contre ombrahost.com aujourd'hui ?

Non. Ils décrivent un contrat préparé. Ce projet n'a pas d'origine API active, de service d'émission de jetons ou d'expéditeur de webhook.

Le site web inclut-il une CLI ou un SDK Ombra fonctionnel ?

Aucune CLI ni SDK n’est revendiqué. L’interface et les flux de compte sont mis en œuvre séparément de cette future conception API.