API REST scriptée : ServiceNow Fluent

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 10 minutes de lecture
  • L’API REST scriptée définit les points de terminaison, les paramètres de requête et les en-têtes d’un service REST scripté [sys_ws_definition].

    Pour des informations générales sur les services REST scriptés, reportez-vous à la section Scripted REST APIs.

    Objet RestAPI

    Créez une API REST scriptée [sys_ws_definition] pour définir les points de terminaison de service Web.

    Tableau 1. Propriétés
    Nom Type Description
    $id Chaîne ou numéro Requis. ID unique pour l’objet de métadonnées. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques.

    Format : Now.ID['chaîne' ou numéro]

    nom Chaîne Requis. Nom de l’API, qui est utilisé dans la documentation relative à l’API.
    serviceId Chaîne Requis. Identificateur d’API utilisé pour distinguer cette API dans les chemins d’URI. Il doit être unique dans l’espace de noms de l’API.
    actif Booléen Marqueur indiquant si l’API peut prendre en charge des demandes.
    Valeurs valides :
    • vrai : l’API peut prendre en charge les requêtes.
    • false : l’API ne peut pas prendre en charge les requêtes.

    Par défaut : true

    shortDescription Chaîne Brève description de l’API, utilisée dans la documentation relative à l’API.
    Consomme Chaîne Une liste des types de médias que les ressources de l’API peuvent consommer.

    Par défaut : application/json,application/xml,text/xml

    lien doc Chaîne URL qui établit un lien vers la documentation statique relative à l’API.
    enforceAcl Tableau Liste des identificateurs de variables des objets ACL ou des sys_ids d’ACL à appliquer lors de l’accès aux ressources [sys_security_acl]. Pour plus d'informations, consultez API de la liste de contrôles d’accès : ServiceNow Fluent.

    Pour ne pas appliquer d’ACL, définissez cette propriété sur un tableau vide ([]).

    Valeur par défaut : REST externe scripté Par défaut

    produit Chaîne Liste des types de médias que les ressources de l’API peuvent produire.

    Par défaut : application/json,application/xml,text/xml

    acheminements Tableau Ressources [sys_ws_operation] pour l’API. Pour plus d'informations, consultez objet d’itinéraires.
    policy Chaîne Politique régissant la protection des fichiers d’application lors du téléchargement ou de l’installation.
    Valeurs valides :
    • read : Les fichiers sont visibles uniquement.
    • protégé : les utilisateurs disposant d’autorisations de mot de passe peuvent modifier les fichiers.
    versions Tableau Liste des versions [sys_ws_version] de l’API. Pour plus d'informations, consultez Objet de versions.

    Spécifier des versions vous permet de gérer différentes versions d’une API et leurs états, par exemple si elles sont actives, la version par défaut ou déconseillées.

    $meta Objet Métadonnées pour les métadonnées de l’application.
    Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques.
    $meta: {
          installMethod: 'String'
    }
    Valeurs valides pour installMethod :
    • demo : génère les métadonnées de l’application dans le répertoire metadata/unload.demo à installer avec l’application lorsque l’option Charger les données de démonstration est sélectionnée.
    • première installation : génère les métadonnées de l’application dans le répertoire metadata/unload à installer uniquement la première fois qu’une application est installée sur une instance.
    import { RestApi } from '@servicenow/sdk/core'
    import { process } from '../server/handler.js'
    
    RestApi({
        $id: Now.ID['rest1'],
        name: 'customAPI',
        serviceId: 'custom_api',
        consumes: 'application/json',
        routes: [
            {
                $id: Now.ID['route1'],
                path: '/home/{id}',
                script: process,
                parameters: [{ $id: Now.ID['param1'],  name: 'n_param' }],
                headers: [{ $id: Now.ID['header1'],  name: 'n_token' }],
                enforceAcl: [acl],
                version: 1,
            },
        ],
        enforceAcl: [acl],
        versions: [
            {
                $id: Now.ID['v1'],
                version: 1,
            },
        ],
    })
    
    L’ACL référencée est définie à l’aide de l’objet ACL :
    import { Acl } from "@servicenow/sdk/core";
    
    const acl = Acl({
        name: 'My random ACL',
        type: 'rest_endpoint',
        script: `answer = (Math.random() > 0.5)`,
        active: true,
        adminOverrides: false,
        operations: ['execute'],
    })

    objet d’itinéraires

    Créez une ressource REST scriptée [sys_ws_operation] pour définir la méthode HTTP, le script de traitement et pour remplacer les paramètres du service parent.

    Utilisez l’objet routes dans l’objet RestAPI .

    Tableau 2. Propriétés
    Nom Type Description
    $id Chaîne ou numéro Requis. ID unique pour l’objet de métadonnées. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques.

    Format : Now.ID['chaîne' ou numéro]

    nom Chaîne Nom de la ressource d’API, qui est utilisé dans la documentation relative à l’API.

    Par défaut : valeur de la propriété path

    script Script Requis. Le script personnalisé définit la façon dont l’opération analyse les demandes et y répond. Cette propriété prend en charge une fonction d’un module JavaScript, une référence à un autre fichier dans l’application qui contient un script ou JavaScript en ligne.
    Format :
    • Pour les fonctions, utilisez le nom d’une fonction, d’une expression de fonction ou d’une fonction par défaut exportée à partir d’un module JavaScript et importez-la dans le fichier .now.ts . Pour en savoir plus sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces.
    • Pour utiliser le contenu textuel d’un autre fichier, reportez-vous à un fichier de l’application en utilisant le format suivant : Now.include('chemin/vers/fichier'). Pour plus d'informations, consultez ServiceNow Fluent Constructions linguistiques.
    • Pour fournir un script inline, utilisez des chaînes de caractères ou des modèles de lignes de code : « Script » ou « Script ».
    paramètres Tableau Une liste des paramètres de requête [sys_ws_query_parameter] pour l’itinéraire. Pour plus d'informations, consultez Objets de paramètres et d’en-têtes.
    en-têtes Tableau Une liste d’en-têtes [sys_ws_header] pour l’itinéraire. Pour plus d'informations, consultez Objets de paramètres et d’en-têtes.
    actif Booléen Marqueur indiquant si la ressource est utilisée.
    Valeurs valides :
    • vrai : la ressource est utilisée.
    • false : la ressource n’est pas utilisée.

    Par défaut : true

    chemin d'accès Chaîne Chemin d’accès de la ressource par rapport au chemin de l’API de base. L’URI relative peut contenir des paramètres de chemin tels que '/abc/{id}'.

    Par défaut : /

    shortDescription Chaîne Brève description de la ressource, utilisée dans la documentation relative à l’API.
    Consomme Chaîne Liste des types de médias que la ressource peut utiliser.

    Cette propriété peut être remplacée par les méthodes PUT, PATCH ou POST.

    Par défaut : valeur de la propriété Consumes dans l’objet RestAPI

    enforceAcl Tableau Liste des identificateurs de variables des objets ACL ou des sys_ids d’ACL à appliquer lors de l’accès aux ressources [sys_security_acl]. Pour plus d'informations, consultez API de la liste de contrôles d’accès : ServiceNow Fluent.

    Pour ne pas appliquer d’ACL, définissez cette propriété sur un tableau vide ([]).

    Valeur par défaut : REST externe scripté Par défaut

    produit Chaîne Liste des types de médias que la ressource peut produire.

    Par défaut : valeur de la propriété produce dans l’objet RestApi

    requestExample Chaîne Exemple valide de charge utile de corps de demande pour la ressource, utilisée dans la documentation relative à l’API.
    method Chaîne Méthode HTTP que la ressource implémente.

    Valeurs valides : GET, POST, PUT, PATCH, DELETE

    Par défaut : GET

    autorisation Booléen Marqueur indiquant si les utilisateurs doivent être authentifiés pour accéder à la ressource.
    Valeurs valides :
    • vrai : les utilisateurs doivent être authentifiés pour accéder à la ressource.
    • faux : aucune authentification n’est requise pour accéder à la ressource.

    Par défaut : true

    Authentification Booléen Marqueur indiquant si les ACL sont appliquées lors de l’accès à la ressource.
    Valeurs valides :
    • vrai : les ACL sont appliquées lors de l’accès à la ressource.
    • faux : les ACL ne sont pas appliquées lors de l’accès à la ressource.

    Par défaut : true

    Rôle interne Booléen Marqueur indiquant si le routage nécessite le rôle snc_internal.

    Cette propriété n’est prise en charge que si le module d’extension Rôles explicites (com.glide.explicit_roles) est activé.

    Valeurs valides :
    • true : le routage nécessite le rôle snc_internal.
    • false : l’itinéraire ne nécessite pas le rôle snc_internal.

    Par défaut : true

    policy Chaîne Politique régissant la protection des fichiers d’application lors du téléchargement ou de l’installation.
    Valeurs valides :
    • read : Les fichiers sont visibles uniquement.
    • protégé : les utilisateurs disposant d’autorisations de mot de passe peuvent modifier les fichiers.
    version Numéro Version de l’API.

    Cette propriété est requise si la propriété versions est utilisée dans l’objet RestAPI .

    La version spécifiée avec cette propriété est utilisée pour générer automatiquement un URI avec une version, telle que /api/management/v1/table/{tableName}. Les numéros de version identifient la version du point de terminaison à laquelle un URI accède. En spécifiant un numéro de version, vous pouvez tester et déployer les changements sans impact sur les intégrations existantes.

    $meta Objet Métadonnées pour les métadonnées de l’application.
    Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques.
    $meta: {
          installMethod: 'String'
    }
    Valeurs valides pour installMethod :
    • demo : génère les métadonnées de l’application dans le répertoire metadata/unload.demo à installer avec l’application lorsque l’option Charger les données de démonstration est sélectionnée.
    • première installation : génère les métadonnées de l’application dans le répertoire metadata/unload à installer uniquement la première fois qu’une application est installée sur une instance.
    routes: [
       {
          $id: Now.ID['route1'],
          path: '/home/{id}',
          script: process,
          parameters: [{ $id: Now.ID['param1'],  name: 'n_param' }],
          headers: [{ $id: Now.ID['header1'],  name: 'n_token' }],
          enforceAcl: [acl],
          version: 1,
       },
    ],

    Objets de paramètres et d’en-têtes

    Créez des paramètres de requête [sys_ws_query_parameter] et des en-têtes [sys_ws_header] pour les itinéraires dans une API REST scriptée. Les paramètres de requête contrôlent les valeurs qu’un utilisateur demandeur peut transmettre dans l’URI de demande. Les en-têtes spécifient ce que l’API accepte et ce à quoi elle peut répondre.

    Utilisez les objets paramètres et en-têtes dans l’objet routes .

    Tableau 3. Propriétés
    Nom Type Description
    $id Chaîne ou numéro Requis. ID unique pour l’objet de métadonnées. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques.

    Format : Now.ID['chaîne' ou numéro]

    nom Chaîne Requis. Nom du paramètre ou de l’en-tête, qui est utilisé dans la documentation de l’API.
    obligatoire Booléen Marqueur indiquant si le paramètre ou l’en-tête est requis.
    Valeurs valides :
    • vrai : le paramètre ou l’en-tête est requis.
    • false : le paramètre ou l’en-tête n’est pas obligatoire.

    Valeur par défaut : false

    ExampleValue Chaîne Exemple d’une valeur valide pour le paramètre ou l’en-tête, utilisée dans la documentation relative à l’API.
    shortDescription Chaîne Brève description du paramètre ou de l’en-tête, qui est utilisé dans la documentation de l’API.
    $meta Objet Métadonnées pour les métadonnées de l’application.
    Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques.
    $meta: {
          installMethod: 'String'
    }
    Valeurs valides pour installMethod :
    • demo : génère les métadonnées de l’application dans le répertoire metadata/unload.demo à installer avec l’application lorsque l’option Charger les données de démonstration est sélectionnée.
    • première installation : génère les métadonnées de l’application dans le répertoire metadata/unload à installer uniquement la première fois qu’une application est installée sur une instance.
    parameters: [{ $id: Now.ID['param1'],  name: 'n_param' }],
    headers: [{ $id: Now.ID['header1'],  name: 'n_token' }],

    Objet de versions

    Créez des versions pour une API REST scriptée [sys_ws_version] afin de définir des points de terminaison de service Web.

    Utilisez l’objet versions dans l’objet RestAPI .

    Tableau 4. Propriétés
    Nom Type Description
    $id Chaîne ou numéro Requis. ID unique pour l’objet de métadonnées. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques.

    Format : Now.ID['chaîne' ou numéro]

    version Numéro Requis. Version de l’API REST.
    actif Booléen Marqueur indiquant si la version de l’API REST peut prendre en charge des demandes.
    Valeurs valides :
    • true : la version de l’API peut prendre en charge les requêtes.
    • faux : la version de l’API ne peut pas prendre en charge les demandes.

    Par défaut : true

    déconseillé Booléen Marqueur indiquant si la version de l’API REST est déconseillée. Les ressources appartenant à des versions déconseillées peuvent prendre en charge des demandes, mais sont identifiées comme déconseillées dans la documentation.
    Valeurs valides :
    • vrai : la version de l’API est identifiée comme déconseillée.
    • faux : la version de l’API n’est pas identifiée comme déconseillée.

    Valeur par défaut : false

    shortDescription Chaîne Brève description de la version de l’API REST, qui s’affiche dans la documentation de l’API.
    isDefault Booléen Marqueur indiquant si la version de l’API REST est la version par défaut. Les clients peuvent accéder à la version par défaut en utilisant le chemin d’URI avec version ou sans version.
    Valeurs valides :
    • vrai : la version de l’API est la version par défaut.
    • false : la version de l’API n’est pas la version par défaut.

    Valeur par défaut : false

    $meta Objet Métadonnées pour les métadonnées de l’application.
    Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques.
    $meta: {
          installMethod: 'String'
    }
    Valeurs valides pour installMethod :
    • demo : génère les métadonnées de l’application dans le répertoire metadata/unload.demo à installer avec l’application lorsque l’option Charger les données de démonstration est sélectionnée.
    • première installation : génère les métadonnées de l’application dans le répertoire metadata/unload à installer uniquement la première fois qu’une application est installée sur une instance.
    versions: [
     {
       $id: Now.ID['v1'],
       version: 1,
     },
    ],