Aller au contenu principal

API des Rendez-vous

🚀 Pourquoi utiliser l’API des Rendez-vous?​

Les rendez-vous sont au cƓur des opĂ©rations d’entrepĂŽt dans DataDocks. Ils reprĂ©sentent les crĂ©neaux horaires planifiĂ©s Ă  vos quais ou dans votre cour pour la rĂ©ception ou l’expĂ©dition d’inventaire. L’API des rendez-vous vous offre un contrĂŽle programmatique sur l’ensemble de votre flux de planification d’entrepĂŽt—de la rĂ©servation des crĂ©neaux au suivi des mouvements de camions, jusqu’à la finalisation des expĂ©ditions.

ProblĂšmes rĂ©els rĂ©solus par cette API​

  • Éliminer la double saisie : Synchronisez directement les rendez-vous entre votre ERP/WMS et DataDocks
  • RĂ©duire la surcharge de communication : Automatisez les notifications entre le personnel d'entrepĂŽt et les transporteurs
  • Optimiser l’utilisation des quais : Planifiez les rendez-vous de façon programmatique pour maximiser l’efficacitĂ©
  • Suivre les indicateurs clĂ©s en temps rĂ©el : Surveillez la ponctualitĂ©, les temps d’attente et le dĂ©bit
  • AmĂ©liorer la visibilitĂ© : Offrez aux transporteurs et clients un accĂšs en libre-service au statut des rendez-vous

DĂ©marrage rapide en 5 minutes​

Vous voulez voir l’API en action ? Suivez ces Ă©tapes pour crĂ©er votre premier rendez-vous :

  1. Demandez et obtenez votre jeton API auprĂšs du support
  2. Trouvez votre sous-domaine d’emplacement (par ex., votre-entrepot.datadocks.com)
  3. Créez un rendez-vous de base avec cette commande :
Voir l’exemple cURL pour dĂ©marrage rapide
curl -X POST \
https://your-warehouse.datadocks.com/api/v1/appointments \
-H 'Authorization: Token VOTRE_JETON_API' \
-H 'Content-Type: application/json' \
-d '{
"appointment": {
"scheduled_at": "2023-12-15T10:00:00-05:00",
"duration": 60,
"dock_name": "Quai 1",
"shipping_number": "EXP-12345"
}
}'
  1. Voilà ! Vous avez créé votre premier rendez-vous. VĂ©rifiez votre tableau de bord DataDocks pour le voir.

Aperçu de l’architecture de l’API​

┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│ Votre systĂšme │──────▶│ API DataDocks │──────▶│ OpĂ©rations EntrepĂŽt │
│ (ERP/WMS/TMS) │◀─────── (REST/JSON) │◀─────── (Planification) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ â–Č
│ │
â–Œ │
┌─────────────────┐
│ Applis Transporteurs │
│ (Enregistrement) │
└─────────────────┘

Authentification​

Toutes les requĂȘtes API doivent inclure votre jeton API dans l’en-tĂȘte Authorization :

Authorization: Token VOTRE_JETON_API

Les jetons d’API sont spĂ©cifiques Ă  chaque organisation et apparaĂźtront dans les journaux d’audit comme « Datadocks API - VOTRE_NOM_ORG ».

Limitations importantes​

  • Les rendez-vous rĂ©currents ne peuvent pas ĂȘtre créés ou modifiĂ©s via l’API
  • La suppression de rendez-vous n’est pas prise en charge via l’API (utilisez l’annulation Ă  la place)
  • Les paramĂštres DateTime doivent ĂȘtre correctement formatĂ©s avec l’information de fuseau horaire
  • Seuls les rendez-vous non rĂ©currents sont retournĂ©s par les endpoints de listes

Lister les Rendez-vous​

Objectif​

RécupÚre une liste paginée de rendez-vous, avec possibilité de filtrage par plage de dates ou par numéro de bon de commande. Utilisez ce endpoint pour synchroniser les rendez-vous avec vos systÚmes ou générer des rapports.

Cas d’utilisation mĂ©tier​

  • Synchroniser les rendez-vous avec votre WMS ou TMS pour la semaine Ă  venir
  • GĂ©nĂ©rer des rapports sur les expĂ©ditions Ă  venir par quai ou transporteur
  • Afficher les rendez-vous sur un tableau de bord avec suivi du statut
  • Suivre des indicateurs tels que ponctualitĂ©, temps d’attente et taux d’utilisation des quais

RequĂȘte HTTP​

GET https://[location_subdomain].datadocks.com/api/v1/appointments

ParamĂštres de requĂȘte​

ParamĂštreTypeRequisDescriptionExemple
pageIntegerNonNuméro de page pour la pagination (défaut : 1)page=2
po_numberStringNonFiltre par numéro de bon de commande (sensible à la casse, concordance exacte)po_number=PO-12345
fromStringNonFiltre les rendez-vous planifiĂ©s Ă  partir de cette date/heure (fuseau de l’emplacement)from=2023-10-01 08:00 AM
toStringNonFiltre les rendez-vous planifiĂ©s avant cette date/heure (fuseau de l’emplacement)to=2023-10-05 06:00 PM

Format de la rĂ©ponse​

La rĂ©ponse contient un tableau paginĂ© d’objets rendez-vous, chacun avec les champs suivants :

ChampTypeDescription
idIntegerIdentifiant unique du rendez-vous
appointment_numberIntegerNuméro de rendez-vous facile à lire
stateStringÉtat actuel du rendez-vous (ex. : « scheduled », « arrived », « completed »)
durationIntegerDurée en minutes
scheduled_atStringHorodatage ISO8601 de la planification du rendez-vous
shipping_numberStringNumĂ©ro de rĂ©fĂ©rence pour l’expĂ©dition
trailer_numberStringNumĂ©ro d’identification de la remorque
bol_numberStringNuméro du connaissement (BOL)
carrier_nameStringNom de l’entreprise de transport
carrier_numberStringIdentifiant du transporteur dans votre systĂšme
driver_nameStringNom du chauffeur
driver_phoneStringTéléphone du chauffeur
driver_emailStringCourriel du chauffeur
created_byStringNom de l’utilisateur ayant créé le rendez-vous
outboundBooleanRendez-vous sortant (true) ou entrant (false)
drop_trailerBooleanS’il s’agit d’un rendez-vous de dĂ©pĂŽt de remorque
queuedBooleanSi ce rendez-vous est en file d’attente
dock_nameStringNom du quai assigné (null si la cour assignée)
yard_nameStringNom de la cour assignée (null si le quai assigné)
internal_idStringIdentifiant interne pour ce rendez-vous
free_untilStringHorodatage ISO8601 de libération du quai/cour
approved_atStringHorodatage ISO8601 d’approbation du rendez-vous
arrived_atStringHorodatage ISO8601 de l’arrivĂ©e du rendez-vous
started_atStringHorodatage ISO8601 du début des opérations
completed_atStringHorodatage ISO8601 de fin des opérations
left_atStringHorodatage ISO8601 de départ
cancelled_atStringHorodatage ISO8601 d’annulation (null si actif)
custom_valuesObjectPaires clé/valeur de champs personnalisés
checklist_valuesObjectPaires clĂ©/valeur d’items de liste de contrĂŽle
packing_listsArrayListes d’objets de listes d’emballage associĂ©es au rendez-vous
notesArrayListe de notes associées
documentsArrayListe de documents associés

(Le contenu des blocs de code, exemples cURL ou JavaScript, ainsi que les objets JSON doivent ĂȘtre traduits uniquement au niveau des commentaires. Les clĂ©s/champs/restent en anglais, seuls les commentaires ou le contexte autour des exemples doivent ĂȘtre en français.)

Exemples de code​

cURL​

Voir l’exemple cURL
# Liste de base
curl -H "Authorization: Token VOTRE_JETON_API" \
https://VOTRE_EMPLACEMENT.datadocks.com/api/v1/appointments

# Filtré par plage de dates et bon de commande
curl -H "Authorization: Token VOTRE_JETON_API" \
"https://VOTRE_EMPLACEMENT.datadocks.com/api/v1/appointments?from=2023-10-01%2008:00%20AM&to=2023-10-05%2006:00%20PM&po_number=PO-12345"

JavaScript​

Voir l’exemple JavaScript
// Utilisation de fetch API avec filtres
const getAppointments = async (fromDate, toDate, poNumber) => {
// ...pas de modification
};

Exemple de rĂ©ponse​

Voir exemple de réponse
[
{
"id": 1,
"appointment_number": 1,
"state": "left",
"duration": 120,
"shipping_number": "57886",
"trailer_number": "2222222",
"bol_number": "922",
"carrier_name": "FastCo",
"carrier_number": "FC123",
"driver_name": "Jason Smith",
"driver_phone": "+1 (555) 123-4567",
"driver_email": "jason.smith@fastco.example.com",
"created_by": "Sysadmin",
"outbound": false,
"drop_trailer": false,
"queued": false,
"dock_name": "Dock 2",
"yard_name": null,
"internal_id": "ERP-A12345",
"free_until": null,
"scheduled_at": "2020-09-30T06:00:00-04:00",
"approved_at": "2020-09-22T13:35:00-04:00",
"arrived_at": null,
"started_at": "2020-09-24T13:35:00-04:00",
"completed_at": "2020-09-24T13:35:00-04:00",
"left_at": "2020-09-25T13:35:00-04:00",
"cancelled_at": null,
"custom_values": {
"expected_at": "2020-10-01",
"travel_type": "Truck",
"forklift_operator": "Sue",
"inspection_passed": "1"
},
"checklist_values": {
"safety_check": "Passed",
"dock_seal_status": "Good",
"temperature": "-5"
},
"packing_lists": [
{
"id": 4,
"po_number": "A-2000",
"customer_name": "FishCo",
"customer_number": "FC001",
"product_name": "Trout",
"unit_name": "Skid",
"booked_quantity": 10,
"booked_weight": 152,
"actual_quantity": 12,
"actual_weight": 160,
"custom_values": {
"barcode": "11223344",
"dimensions": "S",
"temperature_celcius": "-5"
}
}
],
"notes": [
{
"id": 3,
"body": "First note."
}
],
"documents": []
}
]

Pagination​

La rĂ©ponse est paginĂ©e pour mieux gĂ©rer le volume de donnĂ©es. Pour plus d’informations sur la pagination, consultez la documentation sur la pagination.

PiĂšges courants et dĂ©pannage​

  • ProblĂšmes d’analyse de date/heure : les paramĂštres from et to sont interprĂ©tĂ©s selon le fuseau horaire de l’emplacement. Assurez-vous de toujours fournir l’information de fuseau horaire pour Ă©viter des rĂ©sultats inattendus.

    ✅ Bon : from=2023-10-01T08:00:00-04:00
    ✅ Bon : from=2023-10-01 08:00 AM EDT
    ❌ Mauvais : from=2023-10-01
  • Filtrage par numĂ©ro de commande : la recherche n’est pas sensible Ă  la casse, mais la correspondance doit ĂȘtre exacte. Les correspondances partielles ne fonctionnent pas.

    ✅ Fonctionnera : po_number=PO-12345
    ✅ Fonctionnera : po_number=po-12345 (sans sensibilitĂ© Ă  la casse)
    ❌ Ne fonctionnera pas : po_number=12345 (partiel)
  • Format de date incorrect : l’API ne retourne pas d’erreur de validation pour un format de date incorrect. Assurez-vous que vos chaĂźnes de date sont bien formatĂ©es.

  • Rendez-vous non rĂ©currents uniquement : seul ce type de rendez-vous est retournĂ© par ce endpoint.

  • ConsidĂ©rations de performance : pour de grandes plages de dates, privilĂ©giez des requĂȘtes sur des pĂ©riodes plus courtes (ex. : par semaine au lieu du mois entier).

CrĂ©ation d’un Rendez-vous​

Objectif​

CrĂ©er un nouveau rendez-vous sur un quai ou une cour, avec listes d’emballage et mĂ©tadonnĂ©es facultatives. C’est la mĂ©thode principale de planification depuis votre systĂšme.

Arbre de dĂ©cision : quand crĂ©er via l’API​

┌─────────────────┐
│ Besoin de planifier │
│ un rendez-vous ? │
└────────┬────────┘
│
▌
┌─────────────────────────┐ Oui ┌─────────────────┐
│ Cela fait-il partie │────────▶│ Utilisez l’interface │
│ d’un motif rĂ©current ? │ │ de rĂ©servation standard │
└────────┬───────────────┘ └─────────────────┘
│ Non
▌
┌────────────────────┐ Oui ┌─────────────────┐
│ CrĂ©ez-vous beaucoup│────────▶│ Utilisez l’import │
│ de rendez-vous en │ │ en lot via le web │
│ une seule fois ? │ └─────────────────┘
└────────┬──────────┘
│ Non
▌
┌─────────────────┐
│ Parfait pour │
│ l’API ! │
└─────────────────┘

Cas d’utilisation mĂ©tier​

  • IntĂ©gration systĂšme : Planifier depuis ERP, WMS ou TMS
  • Planification automatisĂ©e : CrĂ©er selon les rĂšgles mĂ©tier ou des dĂ©clencheurs
  • Libre-service transporteurs : Permettre la rĂ©servation via leur portail
  • Applications mobiles : Permettre la crĂ©ation depuis mobiles d’entrepĂŽt
  • ExĂ©cution de commandes : GĂ©nĂ©rer un rendez-vous sortant quand la commande est prĂȘte

RequĂȘte HTTP​

POST https://[location_subdomain].datadocks.com/api/v1/appointments

Corps de la requĂȘte​

(Voir tableau original – les champs, contraintes et exemples sont identiques. Traduisez les titres/entĂȘtes, contextualisez les exemples.)

* Soit dock_name, soit yard_name est généralement requis, selon la configuration de votre emplacement.

** Peut ĂȘtre requis selon les prĂ©fĂ©rences d’emplacement

Approbation automatique des rendez-vous​

Par dĂ©faut, selon les paramĂštres de votre emplacement, les rendez-vous créés via API peuvent ĂȘtre approuvĂ©s automatiquement si scheduled_at est prĂ©sent. Pour modifier ce comportement, contactez le support.

Format liste d’emballage​

(L’exemple JSON reste aussi, seul le commentaire gĂ©nĂ©ral est adaptĂ©.)

DĂ©tails des champs de liste d’emballage​

(Voir le tableau original. Les titres et explications sont traduits, les clés restent identiques.)

Logique d’affectation client​

Lorsque vous crĂ©ez une liste d’emballage, fournissez soit customer_name, soit customer_number, soit les deux :

  1. Si seul customer_number est fourni, le systùme :
    • Cherche une correspondance sur le numĂ©ro d’entreprise
    • S’il trouve, il remplit automatiquement nom et ID du client
    • Sinon, il renseigne customer_name avec le numĂ©ro fourni

Traitement des produits et unitĂ©s​

La correspondance se fait sans tenir compte de la casse. Si le produit ou l’unitĂ© n’existe pas et que la validation automatique n’est pas dĂ©sactivĂ©e, vous obtiendrez une erreur. Pour activer la crĂ©ation automatique, contactez le support.

Format de note​

{
"body": "Le chauffeur nécessite un hayon élévateur"
}

Les notes sont attachĂ©es automatiquement Ă  l’utilisateur API courant.

RĂ©ponse​

Une requĂȘte rĂ©ussie retourne un 200 OK avec l’objet rendez-vous complet, incluant l’id systĂšme gĂ©nĂ©rĂ©.

Exemples de code​

(Par souci de lisibilité, ne traduisez que les commentaires/contextes, laissez le code original en anglais.)

Gestion des erreurs​

Code d’erreurDescriptionCause possible
400RequĂȘte invalideChamps obligatoires manquants ou valeurs invalides
404IntrouvableQuai/cour/produit référencé inexistant à cet emplacement
422Entité non traitableValidation métier échouée (conflit de planning, quai plein, etc.)
401Non autoriséJeton API invalide ou manquant
403InterditPermissions insuffisantes pour créer des rendez-vous

Exemple de rĂ©ponse d’erreur​

{
"errors": {
"scheduled_at": ["ne peut ĂȘtre vide", "doit ĂȘtre dans le futur"],
"dock_name": ["Le quai 'Dock 99' n'existe pas Ă  cet emplacement"],
"packing_lists.product_name": [
"Le produit 'Produit inconnu' n'existe pas et la création automatique est désactivée"
]
}
}

PiĂšges et dĂ©pannage courants​

  • Affectation quai vs cour : fournissez l’un OU l’autre. Les deux donnent des rĂ©sultats inattendus.
  • Formats d’heure : toutes les heures doivent inclure l’information de fuseau horaire.
  • CrĂ©ation de produit/unité : Ă  activer par administrateur DataDocks si non existant.
  • Recherche client : le numĂ©ro est comparĂ© sans tenir compte de la casse.
  • Suppression d’une liste d’emballage : passez l’id et _destroy: true lors de la mise Ă  jour.
  • Rendez-vous rĂ©currents : non supportĂ©s par l’API, utilisez l’interface web.
  • Champs personnalisĂ©s : seuls les champs configurĂ©s sont pris en compte.
  • Approbation automatique : dĂ©pend du paramĂ©trage local.

Conseils d’optimisation​

  • Regroupez les requĂȘtes : espacez-les pour Ă©viter les limites de dĂ©bit
  • Minimisez les valeurs personnalisĂ©es : n’envoyez que ce qui est nĂ©cessaire
  • PrĂ©chargez les ressources : vĂ©rifiez l’existence de produits/unitĂ©s/transporteurs
  • Validez localement : limitez les Ă©checs en validant cĂŽtĂ© client

RĂ©cupĂ©ration d’un rendez-vous​

Objectif​

Obtenir l’ensemble des informations d’un rendez-vous par ID : statut, listes d’emballage, mĂ©tadonnĂ©es, etc.

Cas d’utilisation​

  • Suivi du statut : vĂ©rifier l’état en temps rĂ©el
  • Suivi des heures : analyser les heures d’arrivĂ©e et de dĂ©part
  • VĂ©rification documentaire : contrĂŽler les documents ou listes d’emballage joints
  • Transporteur : rĂ©cupĂ©rer les infos chauffeur/remorque
  • Champs personnalisĂ©s : accĂ©der aux champs spĂ©cifiques

RequĂȘte HTTP​

GET https://[location_subdomain].datadocks.com/api/v1/appointments/:id

Paramùtres d’URL​

ParamĂštreTypeRequisDescription
idIntegerOuiIdentifiant unique du rdv

RĂ©ponse​

Un 200 OK avec l’objet rendez-vous complet (mĂȘme format que la liste).

Exemples de code​

(Seuls les commentaires alentours sont traduits pour le contexte.)

RĂ©ponses d’erreur​

CodeDescriptionCause possible
404IntrouvableL’ID ne correspond à aucun rendez-vous
401Non autoriséJeton API manquant ou invalide
403InterditPermissions insuffisantes

Limitations​

  • Seuls les rendez-vous non rĂ©currents sont accessibles
  • Les modĂšles rĂ©currents ne sont disponibles que via l’interface web

Mise à jour d’un rendez-vous​

Objectif​

Modifier les dĂ©tails, le statut ou les donnĂ©es associĂ©es d’un rendez-vous, Ă  toutes les Ă©tapes de son cycle de vie.

Cas d’utilisation​

  • Mise Ă  jour des statuts : arrivĂ©, commencĂ©, terminĂ©, parti
  • Changement de planification : ajustez l’horaire ou la durĂ©e
  • Mise Ă  jour des dĂ©tails : infos transporteur/remorque/rĂ©fĂ©rence
  • Listes d’emballage : modifiez produits, quantitĂ©s, valeurs personnalisĂ©es
  • Gestion des notes : ajoutez des remarques historiques

RequĂȘte HTTP​

PUT https://[location_subdomain].datadocks.com/api/v1/appointments/:id

Paramùtres d’URL​

ParamĂštreTypeRequisDescription
idIntegerOuiIdentifiant unique du rdv

Corps de requĂȘte​

MĂȘme format que pour la crĂ©ation. Seuls les champs Ă  modifier doivent ĂȘtre inclus.

Logique de transition de statut​

Le cycle normal suit cet ordre :

scheduled_at → approved_at → arrived_at → started_at → completed_at → left_at

MĂȘme si les champs sont modifiables Ă  tout moment, il est prĂ©fĂ©rable de tenir ce flux logique.

ScĂ©narios frĂ©quents de mise Ă  jour​

Marquer comme « arrivé »​

{
"appointment": {
"arrived_at": "2023-10-15T08:45:00-04:00",
"trailer_number": "TRAILER-789"
}
}

Modification des quantitĂ©s d’une liste d’emballage​

{
"appointment": {
"packing_lists": [
{
"id": 123,
"actual_quantity": 9,
"actual_weight": 450
}
]
}
}

Ajout d’une nouvelle note​

{
"appointment": {
"notes": [
{
"body": "Le camion est arrivé avec un scellé endommagé. Inspection faite."
}
]
}
}

Suppression d’une liste d’emballage​

{
"appointment": {
"packing_lists": [
{
"id": 123,
"_destroy": true
}
]
}
}

Marquer comme « Terminé »​

{
"appointment": {
"completed_at": "2023-10-15T10:30:00-04:00",
"left_at": "2023-10-15T10:45:00-04:00",
"checklist_values": {
"dock_condition": "Clean",
"paperwork_complete": "Yes"
}
}
}

Exemples de code​

(Comme précédemment, seuls les commentaires contextuels sont adaptés si pertinent.)

Gestion des erreurs​

CodeDescriptionCause possible
400RequĂȘte invalideValeurs ou formats invalides
404IntrouvableL’ID du rendez-vous n’existe pas
422EntitĂ© non traitableValidation mĂ©tier Ă©chouĂ©e (ex : transition impossible)
401Non autoriséJeton API manquant ou invalide
403InterditPermissions insuffisantes

Limitations importantes​

  • Rendez-vous rĂ©currents : pas de support pour leur modification via l’API
  • Mise Ă  jour partielle : seuls les champs prĂ©sentĂ©s sont mis Ă  jour
  • Objets imbriquĂ©s : pour modifier (ex : listes d’emballage), indiquez bien leur id
  • Suppression non supportĂ©e : pas d’endpoint pour supprimer ; pour annuler, posez la date dans cancelled_at

Bonnes pratiques de transition de statut​

ProcĂ©dure conseillĂ©e :

  1. Créer le rendez-vous (scheduled_at)
  2. L’approuver (approved_at)
  3. Marquer comme arrivé (arrived_at)
  4. Commencer l’opĂ©ration (started_at)
  5. Terminer le rendez-vous (completed_at)
  6. Marquer comme parti (left_at)

À chaque Ă©tape d’état, incluez les mĂ©tadonnĂ©es appropriĂ©es (ex : quantitĂ©s rĂ©elles Ă  la complĂ©tion).

Cycle de vie et flux de travail des rendez-vous​

Comprendre ce cycle est essentiel pour une intégration efficace. Chaque rendez-vous suit une machine à états qui gouverne ses transitions.

Workflow visuel des Ă©tats​

┌────────────┐    ┌────────────┐    ┌────────────┐    ┌────────────┐    ┌────────────┐
│ PlanifiĂ© │───▶│ ArrivĂ© │───▶│ CommencĂ© │───▶│ TerminĂ© │───▶│ Parti │
└────────────┘ └────────────┘ └────────────┘ └────────────┘ └────────────┘
│
│ ┌────────────┐
└─────────────────────────────▶│ AnnulĂ© │
└────────────┘

ÉvĂ©nements de transition d’état​

DeÀChamp horodatageDescription
Besoin de réservationEn attente d'approbationscheduled_atRendez-vous avec date prévue
PlanifiĂ©ApprouvĂ©approved_atApprobation du rendez-vous (peut ĂȘtre auto)
ApprouvéArrivéarrived_atCamion arrivé sur site
ArrivéDémarréstarted_atLe chargement/déchargement démarre
DémarréTerminécompleted_atChargement/déchargement terminé
TerminéPartileft_atCamion a quitté le site
Tout étatAnnulécancelled_atRendez-vous annulé (état terminal)

Collecte de donnĂ©es lors des transitions​

À chaque Ă©tape :

Arrivé

  • Mettre Ă  jour les infos chauffeur si besoin
  • Valider le numĂ©ro de remorque
  • Documenter l’heure d’arrivĂ©e
  • Ajouter des remarques

Démarré

  • Documenter les changements d’affectation
  • Horodater le dĂ©but de l’opĂ©ration

Terminé

  • Renseigner les quantitĂ©s/manquants
  • Noter les problĂšmes qualitĂ©
  • Recueillir signatures
  • Charger les documents nĂ©cessaires

Parti

  • Calculer le temps total sur site
  • Horodater le dĂ©part
  • Finaliser la liste de contrĂŽle

Meilleures pratiques d’implĂ©mentation​

  1. Validez les transitions logiquement
  2. Ajoutez les métadonnées à chaque changement
  3. Documentez chaque étape via des notes
  4. Déclenchez des notifications avec les webhooks
  5. Enregistrez les temps pour chaque état

Bonnes pratiques de sĂ©curité​

ProtĂ©gez vos donnĂ©es d’entrepĂŽt via de bonnes mesures de sĂ©curitĂ© API.

Stockage sĂ©curisé​

  • Ne codez jamais en dur les jetons : stockez-les dans des variables d’environnement, coffre-fort, etc.
  • Chiffrez au repos les jetons API
  • Utilisez une gestion des secrets (ex. HashiCorp Vault, AWS Secrets Manager)

SĂ©curitĂ© des connexions​

  • Utilisez HTTPS en tout temps
  • VĂ©rifiez les certificats SSL/TLS

Mesures complĂ©mentaires​

  • Mettez en place la surveillance de l’activitĂ© API
  • PrĂ©parez un plan d’intervention en cas de fuite de jeton

Endpoints connexes​

Suppression de rendez-vous (non supportĂ©e)​

Limitation importante​

L’API des rendez-vous ne prend pas en charge la suppression pure et simple, pour assurer l’intĂ©gritĂ© des historiques.

Alternatives à la suppression​

  • Annulez le rendez-vous en dĂ©finissant cancelled_at
  • Mettez Ă  jour les dĂ©tails si le planning doit ĂȘtre modifiĂ©
  • GĂ©rez le suivi via des champs personnalisĂ©s

Annuler un rendez-vous​

Voir l’exemple cURL
curl -H "Authorization: Token VOTRE_JETON_API" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"appointment": {
"cancelled_at": "2023-10-14T15:30:00-04:00",
"notes": [
{
"body": "Annulé en raison de conditions météorologiques."
}
]
}
}' \
https://VOTRE_EMPLACEMENT.datadocks.com/api/v1/appointments/123

Livre de recettes API : scĂ©narios frĂ©quents​

(Cette section contient des recettes rĂ©utilisables pour divers scĂ©narios : synchronisation ERP, tableau bord, gestion status, etc. Le code reste tel quel, seuls les commentaires contextuels sont adaptĂ©s.)

--- Les recettes suivantes montrent comment :

  • Synchroniser des expĂ©ditions sortantes depuis l’ERP
  • Calculer l’utilisation temps rĂ©el des quais
  • Automatiser le traitement d’arrivĂ©e des camions
  • Mettre Ă  jour par lots les statuts de rendez-vous

(reportez-vous au texte anglais source pour le détail des fonctions JavaScript)

Optimisation de la performance​

Adoptez ces conseils pour des intĂ©grations API efficaces :

Chargement efficace des donnĂ©es​

  • Filtrez par date : fournissez from et to pour limiter le rĂ©sultat
  • Cachez les donnĂ©es stables
  • Utilisez la pagination pour limiter le volume par appel

Optimisation des requĂȘtes​

  • Regroupez les mises Ă  jour au lieu de faire des appels multiples isolĂ©s
  • ContrĂŽlez la concurrence pour Ă©viter les limites de dĂ©bit
  • PrĂ©parez Ă  l’avenir : prise en charge Ă  venir de demandes conditionnelles/Etag

Performance rĂ©seau​

  • Conservez les connexions si vous faites de nombreux appels
  • Compressez les corps de grosse taille (gzip)
  • Exponential backoff : augmentez le dĂ©lai entre tentatives en cas de limite

DĂ©pannage des problĂšmes courants​

Problùmes d’authentification​

Symptîmes​

  • Erreurs 401 « Non autorisé »
  • Messages « Jeton invalide »

Solutions​

  1. Vérifiez votre jeton et sa validité
  2. Vérifiez les permissions sur ce jeton
  3. Confirmez le sous-domaine
  4. VĂ©rifiez le format de l’en-tĂȘte : Authorization: Token VOTRE_JETON_API

Limites de dĂ©bit​

Symptîmes​

  • Erreurs 429 « Trop de requĂȘtes »
  • Échecs soudains de requĂȘtes auparavant fonctionnelles

Solutions​

  1. ImplĂ©mentez la gestion des limites (60 requĂȘtes/min/IP)
  2. Ajoutez des délais entre les mises à jour par lots
  3. Utilisez un backoff exponentiel pour la reprise
  4. RĂ©partissez les requĂȘtes sur plusieurs jetons si possible

Problùmes de date/heure​

Symptîmes​

  • Rendez-vous créés Ă  de mauvaises heures
  • Filtres de recherche inopĂ©rants

Solutions​

  1. Incluez toujours le fuseau horaire
  2. Attention aux changements d’heure d’étĂ©
  3. Utilisez le format ISO8601
  4. Assurez l’ordre chrono dans les filtres

Erreurs de validation des donnĂ©es​

Symptîmes​

  • 422 EntitĂ© non traitable
  • Erreurs de champ spĂ©cifiques

Solutions​

  1. Consultez la réponse détaillée pour identifier le champ fautif
  2. Fournissez les champs requis (scheduled_at, duration)
  3. VĂ©rifiez l’existence des ressources rĂ©fĂ©rencĂ©es
  4. Validez cÎté client

Assistance et support​

Trouver des solutions aux erreurs​

Si vous rencontrez des erreurs non traitées :

  1. Lisez la rĂ©ponse d’erreur : elle est gĂ©nĂ©ralement explicite
  2. Consultez les limitations de l’API
  3. Procédez par étapes pour isoler la cause
  4. Vérifiez les limites de débit

Obtenir du support​

Pour toute aide complĂ©mentaire concernant DataDocks API :

Lors de votre demande, précisez :

  • Votre sous-domaine
  • Les dĂ©tails de la requĂȘte (mĂ©thode, endpoint, paramĂštres)
  • La rĂ©ponse complĂšte de l’erreur
  • L’heure exacte du problĂšme

Remarque : Tous les exemples de code, noms de champs, requĂȘtes JSON/Payload REST restent en anglais pour des raisons d’intĂ©gration technique, les notes, explications, et titres, ainsi que les tables et contextes, sont en français canadien, techniquement prĂ©cis, et suivent le lexique fourni.