Nouveau : le pare-feu IA surveille chaque module et explique chaque incident en termes simples. Découvrez comment ça marche

API des codecs

Lire, tester, publier et supprimer des codecs LoRaWAN via l'API : routes, permissions, mise en cache, limites de débit et codes d'erreur.

L’API des codecs sert la bibliothèque de codecs et vos propres codecs aux personnes, aux scripts et aux routeurs sous licence. Utilisez-la pour conserver les codecs dans le contrôle de version, les publier depuis un pipeline ou tester des payloads depuis vos propres outils.

Les chemins ci-dessous suivent la forme habituelle https://<votre hôte>/tenant/<tenantId>/api/…. Envoyez une clé d’API sous la forme Authorization: Bearer <clé d'API>. Voir Principes de base de l’API REST.

Routes

Méthode et cheminPermissionRéponse
GET /api/iot/lorawan/codecsFacultative (voir ci-dessous)L’index des codecs : { version, scope, codecs: [...], sig: null }
GET /api/iot/lorawan/codecs/<codecId>FacultativeUn codec : { id, rev, sha256, scope, document, outputSet }
GET /api/iot/lorawan/codecs/bundleFacultativeTous les codecs avec leur document, compressés : { version, codecs: [{ id, rev, sha256, scope, document }] }
GET /api/iot/lorawan/codec-libraryConsulter les codecsLa liste affichée dans le tiroir des codecs (paginée, triable, deux sources)
POST /api/iot/lorawan/codecsGérer les codecsPublier un nouveau codec (201)
PATCH /api/iot/lorawan/codecs/<codecId>Gérer les codecsPublier une nouvelle révision de votre codec
DELETE /api/iot/lorawan/codecs/<codecId>Gérer les codecsSupprimer votre codec
POST /api/iot/lorawan/codecs/<codecId>/testConsulter les codecsDécoder une trame avec un codec enregistré
POST /api/iot/lorawan/codecs/testConsulter les codecsVérifier un document de codec et décoder éventuellement une trame ; rien n’est enregistré
GET /api/iot/lorawan/codecs/<codecId>/revisionsConsulter les codecsLes révisions du codec

« Consulter les codecs » est la permission de consulter les codecs LoRaWAN et d’utiliser le banc d’essai (utilisateurs par défaut). « Gérer les codecs » est la permission d’ajouter, de modifier et de supprimer vos propres codecs (administrateurs par défaut).

Qui voit quoi sur les trois routes de lecture

Identifiant envoyéRéponse
AucunLa bibliothèque publique uniquement. Mise en cache pendant 5 minutes (Cache-Control: public, max-age=300).
Une session valide ou une clé d’API avec la permission de consultationLa bibliothèque et les codecs de votre organisation. Non mis en cache (private, no-store).
La requête signée d’un routeur sous licenceLa bibliothèque et les codecs de l’organisation du routeur.
Un identifiant présent mais incorrect (en-tête erroné, session expirée, clé inconnue)401 avec invalid_credentials, signature_expired ou certificate_revoked. Jamais la liste publique.
Un identifiant valide sans la permission requise403

Filtres et mise en cache

L’index accepte q (recherche), vendor, model, oui, fport et scope. Chaque réponse porte un ETag égal à la version de l’index ; renvoyez-le dans If-None-Match pour obtenir 304 Not Modified si rien n’a changé.

GET …/codecs/<codecId>?sha256=<empreinte> demande une révision exacte. Un codec retiré répond 410 (codec_withdrawn).

Publier un codec

POST /tenant/<tenantId>/api/iot/lorawan/codecs
Content-Type: application/json

{ "document": { "id": "t.room-sensor", "title": "…", "vendor": "…", "kind": "layout", "frames": [ … ], "tests": [ … ] } }

Ou copier un codec de la bibliothèque :

{ "copyOf": "<library codec id>", "id": "t.my-copy" }

La réponse est 201 { codec, indexVersion }. Les codecs de la bibliothèque ne peuvent pas être modifiés ou supprimés par ces routes : 403 codec_read_only.

Tester une trame

POST /tenant/<tenantId>/api/iot/lorawan/codecs/t.room-sensor/test
Content-Type: application/json

{ "fport": 2, "hex": "0BC4010A32" }

fport va de 1 à 255 et hex compte au plus 255 octets. Une trame invalide répond Saisissez le FPort (1-255) et le payload en chiffres hexadécimaux (255 octets au maximum).

Limites de débit

AppelantLimite
Sans identifiant : index et codec unique60 requêtes par minute et par adresse
Sans identifiant : bundle6 par heure et par adresse
Utilisateurs connectés et clés d’API240 par minute ; bundle 30 par heure
Routeurs sous licence120 par minute et par certificat d’appareil

Au-delà d’une limite, l’API répond 429 (Trop de requêtes. Réessayez plus tard.).

Codes d’erreur

Statutdetails.reasonSignification
404—Codec introuvable.
409codec_existsUn codec portant cet identifiant existe déjà. Choisissez un autre identifiant.
410codec_withdrawnCette révision du codec a été retirée.
403codec_read_onlyLes codecs de la bibliothèque ne se modifient pas ici : enregistrez une copie et modifiez la copie.
422codec_format_not_supportedUn décodeur JavaScript a été envoyé.
422codec_tests_failedLes vecteurs de test ont échoué ; les vecteurs en échec sont listés.
422codec_incompatibleLa nouvelle révision supprime des clés ou modifie des unités.
422codec_model_claimedUn autre de vos codecs couvre ce modèle.
422codec_choice_unknown(Lorsqu’un appareil ou un profil choisit un codec) le codec n’existe pas ou a été retiré.
401invalid_credentialsLes identifiants envoyés avec cette requête ne sont pas valides.

Pour l’API LoRaWAN complète (passerelles, appareils, clés, appairage, trames), voir l’API LoRaWAN.