Guide FileMaker 18 Data API
A propos de FileMaker Data API
Présentation
FileMaker® Data API est une interface de programmation d'applications (API) qui permet aux services Web d'accéder aux données se trouvant dans des bases de données hébergées. FileMaker Data API utilisant une architecture REST (Representational State Transfer), elle peut donc être qualifiée d'API REST.
Votre service Web ou votre application appelle FileMaker Data API pour obtenir un jeton d'authentification afin d'accéder à une base de données hébergée. Il ou elle utilise alors ce jeton dans les appels suivants pour créer, mettre à jour et supprimer des enregistrements, mais aussi pour exécuter des requêtes.
FileMaker Data API renvoie ensuite des données au format JSON (JavaScript Object Notation), un format texte couramment utilisé avec les API REST, car il ne dépend d'aucun format de langage de programmation en particulier.
Ce guide part du principe que vous savez :
- utiliser FileMaker Pro Advanced pour créer des bases de données. Vous devez comprendre les bases de la conception de bases de données avec FileMaker Pro Advanced, ainsi que les concepts de rubriques, de liens, de modèles, de tables externes et de conteneurs. Consultez l'Aide FileMaker Pro Advanced.
- utiliser FileMaker Server ou un produit FileMaker Cloud pour héberger des bases de données. Vous devez savoir configurer l'hôte, autoriser l'accès aux bases de données hébergées et les surveiller au moyen de l'Admin Console.
- FileMaker Cloud est un service permettant aux apps personnalisées qui utilisent FileMaker Pro Advanced, FileMaker Go et FileMaker WebDirect d'accéder au cloud. FileMaker Cloud utilise le système de connexion intégré FileMaker ID pour authentifier les utilisateurs. FileMaker Cloud est disponible directement via FileMaker, Inc.
- FileMaker Cloud for AWS est un service permettant aux apps personnalisées qui utilisent FileMaker Pro Advanced, FileMaker Go et FileMaker WebDirect d'accéder au cloud. FileMaker Cloud for AWS s'exécute sur le cloud Amazon Web Services (AWS) et est disponible via AWS Marketplace.
- Les produits FileMaker Cloud font référence à FileMaker Cloud et FileMaker Cloud for AWS.
- utiliser des API REST dans des applications côté serveur ou des services Web qui appellent les méthodes POST, GET, PATCH et DELETE avec des données au format JSON. Vous pouvez utiliser les langages de programmation ou les outils de votre choix.
L'Admin Console désigne l'Admin Console de FileMaker Server, FileMaker Cloud for AWS et FileMaker Cloud, sauf si un produit en particulier est mentionné. La FileMaker Cloud Admin Console désigne l'Admin Console des deux produits FileMaker Cloud, sauf si un produit en particulier est mentionné.
Pour utiliser FileMaker Data API, procédez comme suit :
- Préparez votre base de données pour un accès via FileMaker Data API avec FileMaker Pro Advanced. Vous pouvez créer une base de données ou préparer une base de données existante. Consultez la section Préparer les bases de données pour un accès via FileMaker Data API.
- Ecrivez un code qui appelle les méthodes FileMaker Data API afin de rechercher, créer, modifier, dupliquer et supprimer des enregistrements dans une base de données hébergée. Consultez la section Ecrire des appels FileMaker Data API.
- Hébergez votre solution en activant l'accès via FileMaker Data API. Consultez la section Héberger une solution FileMaker Data API.
- Testez le fonctionnement de l'accès via FileMaker Data API. Consultez la section Tester une solution FileMaker Data API.
- Surveillez votre solution hébergée avec l'Admin Console. Consultez la section Surveiller les solutions FileMaker Data API.
Comment traiter un appel FileMaker Data API
-
Un client API REST envoie un appel FileMaker Data API (requête HTTPS) au serveur Web sur le port HTTPS (port 443). Il est inutile d'installer ou d'exécuter FileMaker Pro Advanced.
- Le serveur Web achemine la requête via le module serveur Web FileMaker jusqu'au moteur FileMaker Data API.
- Le moteur FileMaker Data API convertit la requête HTTPS (URL et données JSON) en un format que le composant serveur de base de données peut comprendre, puis envoie des demandes de données à partir de la base de données hébergée par le serveur de base de données.
- Le serveur de base de données renvoie les données FileMaker demandées au moteur FileMaker Data API.
- Le moteur FileMaker Data API convertit les données FileMaker en une réponse HTTPS (URL avec données JSON) pour répondre à l'appel, retransférant ainsi les données au serveur Web.
- Le serveur Web envoie la réponse HTTPS au client API REST qui en fait la demande.
La disponibilité des ports 3000 et 8989 est indispensable pour un bon fonctionnement du moteur FileMaker Data API.
La disponibilité du port 5003 est indispensable pour un bon fonctionnement du serveur de base de données.
Alternatives à la publication Web
Si vous ne maîtrisez pas bien les API REST, envisagez les solutions suivantes pour publier vos données FileMaker sur Internet.
FileMaker WebDirect™ : les utilisateurs Web se connectent à votre base de données hébergée pour visualiser, modifier, trier ou rechercher des enregistrements en fonction des droits d'accès que vous leur donnez. Ils n'ont pas besoin d'installer d'autres logiciels. Un navigateur Web compatible et un accès à Internet ou à un intranet suffisent. L'interface utilisateur ressemble à la version bureau de l'application FileMaker Pro Advanced. Les pages Web et les formulaires sur lesquels l'utilisateur Web interagit dépendent des modèles et des affichages définis dans la base de données FileMaker Pro Advanced.
Consultez le Guide FileMaker WebDirect.
Publication statique : si vos données ne font pas souvent l'objet d'une modification ou si vous ne souhaitez pas que les utilisateurs puissent se connecter directement à votre base de données, envisagez la publication statique. Avec cette dernière, vous exportez des données FileMaker Pro Advanced pour créer une page Web que vous pouvez ensuite personnaliser à l'aide du langage HTML. Ainsi, la page Web n'est pas modifiée lorsque la base de données l'est, et les utilisateurs ne se connectent pas à votre base de données.
Consultez la section Publication de données sur des pages Web statiques dans l'Aide FileMaker Pro Advanced.
Publication Web personnalisée : pour intégrer votre base de données FileMaker à un site Web personnalisé, utilisez les technologies de Publication Web personnalisée fournies par FileMaker Server.
Consultez le Guide de la Publication Web personnalisée FileMaker Server.
Préparer les bases de données pour un accès via FileMaker Data API
Choisir les données auxquelles accéder
Vous pouvez créer une base de données FileMaker Pro Advanced et l'utiliser avec FileMaker Data API ou utiliser une base de données existante. Si vous créez une base de données, envisagez de concevoir les modèles et rubriques nécessaires à votre solution FileMaker Data API. Si vous utilisez une base de données existante, envisagez de créer un modèle spécifique à votre solution FileMaker Data API.
Lorsque vous accédez à des données d'enregistrement, les appels FileMaker Data API nécessitent l'indication d'un modèle. FileMaker Data API utilise la vue par défaut définie pour le modèle que vous avez spécifié.
Indiquez un modèle qui définit la Vue Formulaire comme vue par défaut. Si au contraire vous utilisez un modèle qui définit la vue Tableau comme vue par défaut, FileMaker Data API ne sera en mesure d'obtenir que les données du premier enregistrement lié.
Protéger vos solutions FileMaker Data API
FileMaker Data API nécessite la connexion de votre code d'API REST à une session de base de données au moyen d'un compte protégé par mot de passe. Affectez des mots de passe aux comptes de base de données utilisés pour l'accès de l'API REST ou utilisez un fournisseur de service OAuth pour ces comptes.
Remarques
- Au moment de définir les noms des comptes et les mots de passe des solutions FileMaker Data API, utilisez des caractères ASCII imprimables, par exemple a-z, A-Z et 0-9. Pour sécuriser davantage encore les noms des comptes et les mots de passe, intégrez des caractères de ponctuation du type « ! » et « % » mais n'utilisez pas les deux points. Consultez l'Aide FileMaker Pro Advanced.
- Pour les bases de données hébergées par FileMaker Cloud, vous devez utiliser des comptes FileMaker ID. Consultez la documentation FileMaker Cloud dans le Centre de documentation produit.
Activer l'accès via FileMaker Data API
Vous devez activer le privilège étendu fmrest, Accès via FileMaker Data API, dans chaque base de données à laquelle vous souhaitez accéder avec FileMaker Data API. Si vous n'activez pas le privilège étendu fmrest, les applications d'API REST ne pourront pas utiliser FileMaker Data API pour accéder à la base de données, même si celle-ci est hébergée.
Remarque :Pour des raisons de sécurité, activez uniquement le privilège étendu fmrest dans les jeux de privilèges des comptes auxquels vous souhaitez autoriser l'accès via FileMaker Data API.
Consultez la section « Modification des privilèges étendus » de l'Aide FileMaker Pro Advanced.
Concevoir la solution FileMaker Data API
Fonctionnalités de FileMaker Data API
FileMaker Data API fournit une API REST pour accéder aux données des bases de données hébergées. Avec FileMaker Data API, votre code peut :
- obtenir des informations sur l'hôte ; par exemple, des informations sur le produit et les noms des bases de données hébergées. Consultez la section Obtenir des métadonnées.
- obtenir des informations sur une base de donnés hébergée ; par exemple, les noms de script, les noms de modèle ou les métadonnées de modèle, y compris les noms de rubrique, les noms de liste de valeurs et le contenu des listes de valeurs. Consultez la section Obtenir des métadonnées.
- se connecter à une base de données hébergée ou s'en déconnecter. Consultez la section Se connecter à une base de données ou s'en déconnecter.
- créer, modifier, dupliquer, supprimer ou obtenir un enregistrement ou une plage d'enregistrements. Consultez la section Utiliser les enregistrements.
- exécuter des requêtes. Consultez la section Exécuter une requête.
- définir des valeurs de rubrique de type Global. Consultez la section Définir des valeurs de rubrique de type Global.
- exécuter des scripts FileMaker. Consultez la section Scripts FileMaker et FileMaker Data API.
- uploader des données dans des rubriques Conteneur. Consultez la section Uploader des données de conteneur.
- accéder aux données dans des tables FileMaker externes. Consultez la section Se connecter à une source de données externe.
- utiliser un modèle différent pour les données de réponse au moment d'obtenir un enregistrement ou une plage d'enregistrements. Consultez les sections Obtenir un enregistrement, Obtenir une plage d'enregistrements et Exécuter une requête.
FileMaker Data API ne prend pas en charge :
- l'accès aux données dans des sources de données ODBC externes.
- les plug-ins FileMaker.
- l'activation des déclencheurs de script par l'utilisateur. Une solution FileMaker Data API peut activer des déclencheurs de script uniquement en exécutant un script FileMaker.
- l'accès au système de fichiers de la machine serveur. Par exemple, FileMaker Data API ne prend pas en charge la fonction Obtenir(CheminTemporaire) de FileMaker Pro Advanced. Cette fonction renvoie une chaîne vide lorsqu'elle est utilisée avec FileMaker Data API. Il est possible de stocker les fichiers dans une rubrique Conteneur, mais sans accès au système de fichiers du serveur.
FileMaker Data API renvoie les données de rubrique telles qu'elles sont stockées dans la base de données, et non telles qu'elles sont affichées dans FileMaker Pro Advanced.
Informations de référence sur FileMaker Data API
La référence à FileMaker Data API fournit des informations détaillées sur tous les appels pris en charge par FileMaker Data API.
Remarque :Pour afficher cette référence, vérifiez que l'accès à FileMaker Data API a été activé dans l'Admin Console. Consultez le Centre de documentation produit.
- Pour afficher la référence sur un hôte FileMaker Cloud, ouvrez un navigateur et saisissez l'URL
https://
hôte
/fmi/data/apidoc/
oùhôte correspond à l'adresse IP ou au nom de l'hôte FileMaker Cloud
- Pour afficher la référence sur un ordinateur maître exécutant FileMaker Server, ouvrez un navigateur et saisissez l'URL
https://localhost/fmi/data/apidoc/
- Pour afficher la référence sur un ordinateur distant exécutant FileMaker Server, ouvrez un navigateur et saisissez l'URL
https://
hôte
/fmi/data/apidoc/
où[hôte]
est l'adresse IP ou le nom d'hôte de l'ordinateur maître exécutant FileMaker Server. Pour FileMaker Server installé sur un serveur Windows, les fichiers de référence se trouvent dans le dossier
[disque]
:\Program Files\FileMaker\FileMaker Server\Documentation\Data API Documentation
où[disque]
est le disque sur lequel se trouve le déploiement FileMaker Server.Si vous effectuez votre installation sur un emplacement sous Windows autre que celui par défaut, votre emplacement d'installation remplace la première partie du chemin d'installation par défaut
[disque]
:[emplacement_installation]
\FileMaker\FileMaker Server\Documentation\Data API Documentation- Pour FileMaker Server installé sur un serveur macOS, les fichiers de référence se trouvent dans le dossier
/Bibliothèque/FileMaker Server/Documentation/Data API Documentation
Remarques
- Pour afficher les variables des URL dans les fichiers de référence, utilisez un mot-clé précédé du signe deux points (:). Par exemple :
:base
- Dans ce guide, les variables des URL sont indiquées en italique. Par exemple :
nom-base
Remarques concernant les URL et le format des données
- La longueur maximale de l'identificateur URI de FileMaker Data API dépend parfois du système d'exploitation, du serveur Web et du navigateur Web. Pour une utilisation optimale sur toutes les plateformes, limitez cette longueur à 2 000 caractères.
- Certaines URL ou parties d'URL ne sont pas sensibles à la casse. Néanmoins, en règle générale, traitez-les comme si elles l'étaient. Par exemple, si vous utilisez un nom de base de données en minuscules pour vous connecter à une session de base de données, continuez à utiliser un nom de base de données en minuscules pour les URL suivantes qui transmettent le même jeton de session. Dans le cas contraire, vous pourriez recevoir un message d'erreur indiquant un jeton non valide.
- Les chaînes des URL doivent utiliser le codage URL également appelé %-encodage, ce qui est normal pour les requêtes HTTP. Par exemple, pour indiquer un nom de modèle qui inclut un caractère barre oblique, vous devez spécifier ce dernier sous forme de valeur encodée : « %2F ».
- Les valeurs de données de chaîne définies dans les paramètres, dans le corps de la requête, doivent utiliser le codage UTF-8.
- En règle générale, FileMaker Data API traite les valeurs de données numériques comme si elles étaient au format virgule flottante double précision (binaire 64). Utilisez le format de données correspondant au langage de programmation choisi. (Les valeurs de données numériques ne doivent pas être mises entre guillemets et ne doivent pas utiliser l'encodage URL.)
- Les valeurs de données des rubriques de type nombre, date, heure et horodatage suivent les mêmes limites que celles définies par FileMaker Pro Advanced. Consultez l'Aide FileMaker Pro Advanced.
- Les rubriques et tables externes que vous spécifiez doivent figurer dans le modèle indiqué.
- Pour spécifier des rubriques liées, utilisez la syntaxe
portalData
.Remarque :La syntaxe
nomtable::rubrique-liée(nombre-répétition).id-enregistrement
issue de la publication précédente est encore prise en charge, mais nous vous conseillons d'utiliser la syntaxeportalData
. - Dans le corps de réponse, FileMaker Data API renvoie uniquement le nom des rubriques de la table active et le nom complet des rubriques des tables liées. Pour les rubriques de table externe, le nom entièrement qualifié utilise le nom de la table externe si cette dernière a été nommée dans l'Inspecteur ; sinon, le nom entièrement qualifié utilise le nom de l'occurrence de table.
- Pour les données de rubrique Conteneur, FileMaker Data API renvoie à l'objet de données de conteneur une URL contenant la référence au chemin.
Scripts FileMaker et FileMaker Data API
Un script FileMaker est une ou plusieurs instructions (actions de script) définies pour automatiser les tâches répétitives ou difficiles. Lorsque les scripts FileMaker sont utilisés avec FileMaker Data API, ils permettent aux services Web d'exécuter plusieurs tâches ou une série de tâches. Consultez la section Exécution de scripts FileMaker.
Pour visualiser les actions de script acceptées par FileMaker Data API, ouvrez l'Espace de travail de script de FileMaker Pro Advanced, cliquez sur le bouton Compatibilité, puis sélectionnez FileMaker Data API. Les actions de script non grisées sont prises en charge par FileMaker Data API. Certaines actions de script fonctionnent différemment ou peuvent ne pas être prises en charge par FileMaker Data API. Consultez l'Aide FileMaker Pro Advanced.
Les scripts exécutés par FileMaker Data API ne peuvent pas exécuter les scripts dans d'autres fichiers FileMaker sauf si les fichiers sont hébergés sur le même hôte. Le privilège étendu fmrest doit être activé pour les autres fichiers FileMaker.
Dans FileMaker Pro Advanced, les scripts et actions des utilisateurs (par exemple, l'utilisateur cliquant dans une rubrique) peuvent activer des déclencheurs de script. Toutefois, dans les solutions FileMaker Data API, seuls les scripts peuvent activer des déclencheurs de script. Pour plus d'informations sur les déclencheurs de script, consultez l'Aide FileMaker Pro Advanced.
Remarques
- Tenez compte de la quantité de données et du nombre d'enregistrements qu'un script peut renvoyer, puis définissez les scripts en conséquence. Dans FileMaker Pro Advanced, un script peut renvoyer tous les enregistrements d'une table ou d'un jeu d'enregistrements trouvés. Toutefois, si un script renvoie tous les enregistrements d'une table, un service Web qui tente de tous les traiter peut se heurter à un problème de mémoire.
- Utilisez les comptes et privilèges pour restreindre l'ensemble des scripts qu'un service Web exécute. Vérifiez que les scripts contiennent exclusivement des actions de script compatibles avec le Web et donnez uniquement accès aux scripts pouvant être utilisés depuis un service Web.
- Pensez aux effets secondaires des scripts qui exécutent une combinaison d'actions contrôlées par des privilèges d'accès. Par exemple, si un script comporte une action visant à supprimer des enregistrements et qu'un service Web ne se connecte pas avec un compte autorisant la suppression d'enregistrements, le script n'exécutera pas l'action Supprimer des enregistrements. L'exécution du script peut néanmoins se poursuivre et mener à des résultats inattendus.
- Dans l'Espace de travail de script, accordez les privilèges d'accès intégral à un script afin d'effectuer des actions auxquelles des utilisateurs n'ont normalement pas accès. Par exemple, vous pouvez empêcher les utilisateurs de supprimer des enregistrements avec leurs comptes et privilèges, mais les autoriser à exécuter un script visant à supprimer certains enregistrements dans les conditions définies dans le script.
- Les points de terminaison FileMaker Data API sont destinés à valider immédiatement les modifications apportées aux données, mais les scripts peuvent laisser des enregistrements non validés. Par exemple, une session pourrait exécuter un script qui modifie un enregistrement mais ne le valide pas ; la session suivante obtiendrait alors un message d'erreur lors de la tentative de modification du même enregistrement. Ou bien, dans une seule session, un script pourrait modifier un enregistrement, puis créer une nouvelle fenêtre, puis appeler un second script qui tente de modifier le même enregistrement. Assurez-vous de vérifier les résultats de script et l'absence d'erreurs de script.
- Tout script modifiant des données doit inclure l'action de script Valider enreg./requêtes, car toutes les modifications apportées aux données ne sont pas accessibles tant que les données ne sont pas enregistrées sur le serveur. Ceci inclut des actions de script telles que Couper, Copier ou Coller. De nombreuses actions de script uniques doivent être converties en script pour inclure l'action Valider enreg./requêtes. Lors de la conception de scripts destinés à être exécutés depuis un service Web, incorporez l'action Valider enreg./requêtes en fin de script pour garantir l'enregistrement de toutes les modifications.
- Ouvrez les scripts susceptibles d'être exécutés par les utilisateurs Web et vérifiez qu'ils s'exécutent correctement lorsque la base de données est hébergée en tant que solution FileMaker Data API. Vérifiez que le script utilise uniquement les actions de script prises en charge par FileMaker Data API, comme décrit plus haut.
Ecrire des appels FileMaker Data API
Composants des appels d'API REST
Les appels FileMaker Data API utilisent les composants ci-après.
Composant | Description |
---|---|
Une méthode HTTP (également appelée verbe HTTP) |
FileMaker Data API utilise les méthodes HTTP suivantes :
|
En-têtes HTTP |
FileMaker Data API utilise les en-têtes suivants :
|
Une URL d'appel | Les URL FileMaker Data API commencent toutes par :
|
Données de paramètres au format JSON | Inutile pour se déconnecter d'une session de base de données, obtenir des métadonnées, supprimer un enregistrement, dupliquer un enregistrement, obtenir un seul enregistrement, obtenir une plage d'enregistrements ou exécuter un script. |
Se connecter à une base de données ou s'en déconnecter
FileMaker Data API utilise un jeton d'accès pour définir une connexion à une base de données. Ce jeton d'accès doit figurer dans l'en-tête de tous les appels ultérieurs à la base de données hébergée. Il est valide jusqu'à ce que vous vous déconnectiez d'une session de base de données ou pendant une durée de 15 minutes après le dernier appel ayant permis de le spécifier. (Tant que ce jeton est valide, chaque appel qui le spécifie réinitialise le compteur de délai d'expiration de session et le remet à zéro.)
Se connecter à une session de base de données
Pour vous connecter à une base de données hébergée, utilisez une méthode HTTP POST avec le point de terminaison API sessions
en indiquant le nom d'une base de données hébergée. Le nom et le mot de passe du compte sont indiqués dans une chaîne d'en-tête Authorization. Si le nom de compte et le mot de passe sont authentifiés, votre code reçoit un jeton d'accès qui définit votre connexion à la base de données. Cette connexion est appelée session de base de données.
Méthode HTTP | POST |
---|---|
URL | /fmi/data/version/databases/nom-base/sessions
version est la version FileMaker Data API demandée, soit |
En-tête HTTP | Content-Type: application/json Authorization : chaîne codée en base64 représentant le nom et le mot de passe du compte que vous devez utiliser pour vous connecter à la base de données hébergée. Cette chaîne en base64 doit suivre le schéma d'authentification HTTP standard de base. (Le nom et le mot de passe du compte sont séparés par une virgule.) |
Paramètres |
Un ensemble d'accolades vides. Par exemple :
Vous pouvez éventuellement utiliser le paramètre |
Réponse | Le jeton d'accès, un corps de réponse contenant le jeton d'accès et un tableau de messages indiquant un code d'erreur de 0. L'en-tête X-FM-Data-Access-Token est renvoyé dans la réponse. Il correspond au jeton de session à utiliser pour les appels d'API suivants. Par exemple : En-tête :
"X-FM-Data-Access-Token": "c4d2e429122e9cdeda19bb23c55cd2a8f282c3cc50c60943a110",
{
Corps :
"messages": [
{
"message": "OK",
"code": "0"
}
],
"response": {
"token": "c4d2e429122e9cdeda19bb23c55cd2a8f282c3cc50c60943a110"
},
"HTTPMessage": "OK",
"HTTPCode": 200
}
Consultez la section Codes d'erreur. |
Se connecter à une source de données externe
Si votre base de données hébergée a besoin de se connecter à une source de données externe, son nom est indiqué dans l'URL. Le nom et le mot de passe du compte de la base de données hébergée sont précisés dans la chaîne d'en-tête Authorization. Le nom de la base de données, le nom du compte et le mot de passe de la source de données externes sont quant à eux mentionnés dans le paramètre fmDataSource
sous la forme d'un tableau JSON.
Méthode HTTP | POST |
---|---|
URL | /fmi/data/version/databases/nom-base/sessions
version est la version FileMaker Data API demandée, soit |
En-tête HTTP | Content-Type: application/json Authorization : chaîne codée en base64 représentant le nom et le mot de passe du compte que vous devez utiliser pour vous connecter à la base de données hébergée. Cette chaîne en base64 doit suivre le schéma d'authentification HTTP standard de base. |
Paramètres | Paramètre Par exemple : { "fmDataSource":
[ { "database":"contacts", "username":"admin", "password":"admin" } ]
}
Si vous utilisez un compte OAuth pour vous connecter à la source de données externe, spécifiez la valeur d'en-tête X-FMS-Request-ID ( { "fmDataSource":
[ { "database":"contacts", "oAuthRequestId": "E65B98BB17429CO643B31119F", "oAuthIdentifier": "B164A3459A776E5177445DR223"} ]
}
|
Réponse | Le jeton d'accès, un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. L'en-tête X-FM-Data-Access-Token est renvoyé dans la réponse. Il correspond au jeton de session à utiliser pour les appels d'API suivants. Par exemple : X-FM-Data-Access-Token: c13c0f486780f2187bde6f3859dabd4dcf8ea43be420dfeadf34
{
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Remarques
- Les bases de données FileMaker sont les seules sources de données externes prises en charge. Indiquez le nom de la base de données sans l'extension .fmp12.
- Les fichiers répertoriés dans le paramètre
fmDataSource
seront ouverts si nécessaire, par exemple, lorsqu'un script est exécuté ou que le contexte est modifié pour un modèle qui nécessite une source de données externe. Par conséquent, les erreurs avec connexion à la source de données externe se produisent lors de la tentative d'ouverture des fichiers, et non lors de la connexion à la session de base de données.
Se connecter à une session de base de données avec un fournisseur d'identité OAuth
Pour vous connecter à une base de données hébergée avec un fournisseur d'identité OAuth, utilisez une méthode HTTP POST avec le point de terminaison API sessions
en indiquant la base de données. Utilisez les chaînes X-FM-Data-OAuth-Request-Id et X-FM-Data-OAuth-Identifier dans l'en-tête pour authentifier l'accès à la base de données hébergée. Si l'authentification est acceptée, votre code reçoit un jeton d'accès qui définit la connexion à la base de données. Cette connexion est appelée session de base de données.
Méthode HTTP | POST |
---|---|
URL | /fmi/data/version/databases/nom-base/sessions
version est la version FileMaker Data API demandée, soit |
En-tête HTTP | Content-Type: application/json X-FM-Data-OAuth-Request-Id: id-requête X-FM-Data-OAuth-Identifier: paramètre-identifiant |
Paramètres |
Un ensemble d'accolades vides. Par exemple : Vous pouvez éventuellement utiliser le paramètre |
Réponse | Le jeton d'accès, un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. L'en-tête X-FM-Data-Access-Token est renvoyé dans la réponse. Il correspond au jeton de session à utiliser pour les appels d'API suivants. Par exemple : X-FM-Data-Access-Token: 823c0f48bb80f2187bde6f3859dabd4dcf8ea43be420dfeadf34
{
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Pour obtenir les paramètres OAuth au format JSON :
-
Obtenez la liste des fournisseurs OAuth pris en charge au moyen d'une méthode HTTP GET avec l'URL suivante :
https://hôte/fmws/oauthproviderinfo
où hôte est l'adresse IP ou le nom de domaine de l'ordinateur maître de votre déploiement FileMaker Server, ou bien l'adresse IP ou le nom de domaine de l'hôte FileMaker Cloud for AWS. Cette liste est renvoyée au format JSON.
- Sélectionnez un fournisseur OAuth pris en charge, puis obtenez un identifiant de suivi de session.
-
Utilisez une méthode HTTP GET avec l'URL suivante :
http://hôte/oauth/getoauthurl?trackingID=ID-suivi&provider=fournisseur-OAuth&address=127.0.0.1&X-FMS-OAuth-AuthType=2
où hôte est l'adresse IP ou le nom de domaine de l'ordinateur maître de votre déploiement FileMaker Server, ou bien l'adresse IP ou le nom de domaine de l'hôte FileMaker Cloud for AWS, ID-suivi est l'identifiant de suivi de session généré par le développeur, et fournisseur-OAuth est le nom du fournisseur OAuth sélectionné.
L'en-tête HTTP de cette requête doit inclure les éléments suivants :
- X-FMS-Application-Type : 9
- X-FMS-Application-Version : 15
- X-FMS-Return-URL : http://127.0.0.1/
- Lisez l'en-tête de réponse des données X-FMS-Request-ID. Il contient l'identifiant de requête OAuth que vous utiliserez pour la chaîne X-FM-Data-OAuth-Request-ID de l'en-tête.
- Lisez l'en-tête de réponse des données X-FMS-Return-URL. Appelez l'URL renvoyée dans ce paramètre pour autoriser l'utilisateur à s'authentifier auprès du fournisseur OAuth.
- L'« identifiant » renvoyé par le fournisseur OAuth est le paramètre d'identifiant OAuth que vous utiliserez pour la chaîne X-FM-Data-OAuth-Identifier de l'en-tête.
Consultez la section « Modification d'un accès de compte OAuth » de l'Aide FileMaker Pro Advanced.
Se connecter à une session de base de données avec un compte FileMaker ID
Pour les fichiers hébergés par FileMaker Cloud, les utilisateurs sont authentifiés via des comptes FileMaker ID. Les comptes FileMaker ID sont définis dans le système de fournisseur d'identité FileMaker ID.
Pour vous connecter à une base de données hébergée avec un compte FileMaker ID, utilisez une méthode HTTP POST avec le point de terminaison API sessions
en indiquant le nom d'une base de données hébergée. Le jeton FileMaker ID token est indiqué dans une chaîne d'en-tête Authorization. Votre code reçoit un jeton d'accès qui définit la connexion à la base de données. Cette connexion est appelée session de base de données.
Méthode HTTP | POST |
---|---|
URL | /fmi/data/version/databases/nom-base/sessions
version est la version FileMaker Data API demandée, soit |
En-tête HTTP | Content-Type: application/json Authorization: FMID {FMID-token} FMID-token est le jeton FileMaker ID fourni par le système de fournisseur d'identité FileMaker ID. Pour plus d'informations sur le jeton FileMaker ID, consultez l'Aide FileMaker Customer Console dans le Centre de documentation produit. Consultez la section « Modification d'un accès de compte FileMaker ID » de l'Aide FileMaker Pro Advanced. |
Paramètres |
Un ensemble d'accolades vides. Par exemple : |
Réponse | Le jeton d'accès, un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. L'en-tête X-FM-Data-Access-Token est renvoyé dans la réponse. Il correspond au jeton de session à utiliser pour les appels d'API suivants. Par exemple : X-FM-Data-Access-Token: 823c0f48bb80f2187bde6f3859dabd4dcf8ea43be420dfeadf34
{
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Se déconnecter d'une session de base de données
Lorsque votre code a fini d'accéder à la base de données hébergée, utilisez une méthode HTTP DELETE avec le point de terminaison API sessions
en indiquant le nom de la base de données hébergée et le jeton d'accès de la session. Si votre code ne vous permet pas de vous déconnecter de la session de base de données, le jeton d'accès perd sa validité au moment où la session FileMaker Data API expire, soit 15 minutes après le dernier appel ayant permis de spécifier le jeton.
Méthode HTTP | DELETE |
---|---|
URL | /fmi/data/version/databases/nom-base/sessions/jeton-session
version est la version FileMaker Data API demandée, soit nom-base est le nom de la base de données hébergée jeton-session est le paramètre X-FM-Data-Access-Token de la session de base de données |
En-tête HTTP | Content-Type: application/json |
Paramètres | Aucun |
Réponse |
Un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Obtenir des métadonnées
FileMaker Data API prend en charge la récupération des métadonnées suivantes :
- les informations sur l'hôte. Consultez la section Obtenir des informations sur le produit.
- les noms des bases de données hébergées. Consultez la section Obtenir des noms de base de données.
- les noms des scripts FileMaker disponibles dans une base de données hébergée. Consultez la section Obtenir des noms de script.
- les noms des modèles disponibles dans une base de données hébergée. Consultez la section Obtenir des noms de modèle.
- les métadonnées supplémentaires relatives à un modèle spécifique dans une base de données hébergée. Consultez la section Obtenir des métadonnées de modèle.
Obtenir des informations sur le produit
Pour récupérer des informations sur l'hôte, utilisez une méthode HTTP GET avec le point de terminaison API productInfo
.
Méthode HTTP | GET |
---|---|
URL |
Format : /fmi/data/version/productInfo
|
En-tête HTTP | Aucun |
Paramètres | Aucun |
Réponse |
Un tableau de messages indiquant un code d'erreur de 0. Consultez la section Codes d'erreur. Un corps de réponse contenant les métadonnées suivantes :
Par exemple : {
"response": {
"productInfo": {
"buildDate": "01/30/2020",
"dateFormat": "MM/dd/yyyy",
"timeStampFormat": "MM/dd/yyyy HH:mm:ss",
"version": "18.0.1.30",
"timeFormat": "HH:mm:ss",
"name": "FileMaker Data API Engine"
}
},
"messages": [
{
"code": "0",
"message": "OK"
}
]
}
|
Obtenir des noms de base de données
Pour récupérer les noms de toutes les bases de données hébergées et accessibles via FileMaker Data API, utilisez une méthode HTTP GET avec le point de terminaison API databases
.
Méthode HTTP | GET |
---|---|
URL | Format : /fmi/data/version/databases
|
En-tête HTTP |
L'en-tête Authorization dépend du paramètre Filtrer les bases de données dans les applications clientes de l'Admin Console.
|
Paramètres | Aucun |
Réponse |
Un tableau de bases de données répertoriant les noms de base de données et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"databases": [{
"name": "Clients"
}, {
"name": "Ventes"
}]
},
"messages": [{
"code": "0",
"message": "OK"
}]
}
Consultez la section Codes d'erreur. |
Obtenir des noms de script
Pour récupérer les noms de script de tous les scripts disponibles pour une base de données indiquée, utilisez une méthode HTTP GET avec le point de terminaison API scripts
.
Méthode HTTP | GET |
---|---|
URL | Format :/fmi/data/version/databases/nom-base/scripts
|
En-tête HTTP | Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun |
Réponse |
Un tableau de scripts répertoriant les noms de script et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"scripts": [
{
"name": "ActiverPremier",
"isFolder": false
},
{
"name": "Un dossier",
"isFolder": true,
"folderScriptNames": [
{
"name": "script1",
"isFolder": false
},
{
"name": "-",
"isFolder": false
},
{
"name": "script2",
"isFolder": false
},
{
"name": "Un autre dossier",
"isFolder": true,
"folderScriptNames": [
{
"name": "script3",
"isFolder": false
}
]
},
{
"name": "script4",
"isFolder": false
}
]
}
]
},
"messages": [
{
"message": "OK",
"code": "0"
}
]
}
Consultez la section Codes d'erreur. |
Obtenir des noms de modèle
Pour récupérer les noms de modèle de tous les modèles disponibles pour une base de données indiquée, utilisez une méthode HTTP GET avec le point de terminaison API layouts
.
Méthode HTTP | GET |
---|---|
URL | Format :/fmi/data/version/databases/nom-base/layouts
|
En-tête HTTP | Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun |
Réponse |
Un tableau de modèles répertoriant les noms de modèle et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"messages": [
{
"message": "OK",
"code": "0"
}
],
"response": {
"layouts": [
{
"name": "Clients"
},
{
"name": "Détails"
},
{
"folderLayoutNames": [
{
"name": "Marquer comme envoyé"
},
{
"name": "Marquer comme non envoyé"
}
],
"isFolder": true,
"name": "Gestion des colis"
}
]
}
}
Consultez la section Codes d'erreur. |
Obtenir des métadonnées de modèle
Pour récupérer les métadonnées de modèle, y compris les rubriques d'un modèle, les tables externes et les listes de valeurs, utilisez une méthode HTTP GET avec le point de terminaison API layouts
et indiquez un nom de modèle.
Méthode HTTP | GET |
---|---|
URL | Format 1 : /fmi/data/version/databases/nom-base/layouts/nom-modèle
Format 2 : /fmi/data/version/databases/nom-base/layouts/nom-modèle?recordId=id-enregistrement
|
En-tête HTTP | Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun |
Réponse |
Un corps de réponse contenant les tableaux fieldMetaData, portalMetaData et valueLists, et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"fieldMetaData": [
{
"name": "NomClient",
"type": "normal",
"displayType": "editText",
"result": "text",
"valueList": "Texte",
"global": false,
"autoEnter": false,
"fourDigitYear": false,
"maxRepeat": 1,
"maxCharacters": 0
"notEmpty": false,
"numeric": false,
"timeOfDay": false,
"repetitionStart": 1,
"repetitionEnd": 1
}
],
"portalMetaData": {},
"valueLists": [
{
"name": "Région",
"type": "customList",
"values": [
{
"displayValue": "Ouest",
"value": "Ouest"
}
,
{
"displayValue": "Est",
"value": "Est"
}
]
}
]
},
"messages": [
{
"code": "0",
"message": "OK"
}
]
}
Consultez la section Codes d'erreur. |
Remarques
- Pour les listes de valeurs, une liste de valeurs vide est renvoyée lorsque la requête n'inclut pas le paramètre
recordId
dans l'URL.
Utiliser les enregistrements
Créer un enregistrement
Pour créer un enregistrement, utilisez une méthode HTTP POST avec le point de terminaison API records
en indiquant le nom de la base de données et le modèle.
Méthode HTTP | POST |
---|---|
URL |
/fmi/data/version/databases/nom-base/layouts/nom-modèle/records
version est la version FileMaker Data API demandée, soit |
En-tête HTTP | Content-Type: application/json Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Données d'enregistrement au format JSON contenant des paires rubrique/valeur qui indiquent les valeurs des rubriques dans le modèle cible. A l'aide de la spécification portalData, ces données peuvent spécifier des enregistrements liés ou des tables externes se trouvant dans le modèle. Un nom de table externe peut être le nom de l'objet tel qu'indiqué dans l'Inspecteur de FileMaker Pro Advanced ou le nom de la table liée. Par exemple : {"fieldData":
{
"String Field": "valeur_1",
"Number Field": 99.99,
"repetitionField(1)" : "valeurRubrique"
}
}
Remarque :Pour créer un enregistrement vide avec des valeurs par défaut pour chaque rubrique, indiquez comme paramètre un objet de données vide au format JSON. Par exemple : {"fieldData":
{
}
}
Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
Réponse |
L'identifiant de l'enregistrement créé et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"recordId":"147",
"modId":"0"
},
"messages": [
{
"code": "0",
"message":"OK"
}
]
}
Consultez la section Codes d'erreur. |
Remarques
- Quand vous créez des enregistrements avec FileMaker Data API, vous validez les rubriques. Si la validation des rubriques n'a pas lieu, vous recevez un message d'erreur et l'enregistrement n'est pas créé.
Modifier un enregistrement
Pour modifier un enregistrement, utilisez une méthode HTTP PATCH avec le point de terminaison API records
en indiquant le nom de la base de données, le modèle et l'identifiant de l'enregistrement.
Méthode HTTP | PATCH |
---|---|
URL |
/fmi/data/version/databases/nom-base/layouts/nom-modèle/records/id-enregistrement
version est la version FileMaker Data API demandée, soit |
En-tête HTTP |
Content-Type: application/json Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Données d'enregistrement au format JSON contenant des paires rubrique/valeur à mettre à jour. A l'aide de la spécification portalData, ces données peuvent spécifier des enregistrements liés ou des tables externes se trouvant dans le modèle. Un nom de table externe peut être le nom de l'objet tel qu'indiqué dans l'Inspecteur de FileMaker Pro Advanced ou le nom de la table liée. Seules les rubriques que vous indiquez sont mises à jour. Les autres rubriques de l'enregistrement restent inchangées. Si « {} » est fourni comme valeur Paramètre facultatif : identifiant de modification ( Par exemple : {
"fieldData":
{
"Prénom": "Jean"
},
"portalData":
{
"JobsTable": [
{
"recordId": 70,
"modId": 4,
"JobsTable::Name": "Sous-traitant"
}
]
}
}
Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
Réponse |
Le corps de réponse et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"modId": "3"
},
"messages": [
{
"code": "0",
"message": "OK"
}
]
}
Consultez la section Codes d'erreur. |
Remarques
- Quand vous modifiez des enregistrements avec FileMaker Data API, vous validez les rubriques. Si la validation des rubriques n'a pas lieu, vous recevez un message d'erreur et l'enregistrement n'est pas mis à jour.
-
Pour supprimer un enregistrement lié, utilisez la syntaxe
deleteRelated
.Par exemple, pour supprimer un seul enregistrement :
"deleteRelated" : "Orders.3"
Par exemple, pour supprimer plusieurs enregistrements :
"deleteRelated" : ["Orders.7", "Orders.9"]
Dupliquer un enregistrement
Pour dupliquer un enregistrement, utilisez une méthode HTTP POST avec le point de terminaison API records
en indiquant le nom de la base de données, le modèle et l'identifiant de l'enregistrement.
Méthode HTTP | POST |
---|---|
URL |
/fmi/data/version/databases/nom-base/layouts/nom-modèle/records/id-enregistrement
version est la version FileMaker Data API demandée, soit |
En-tête HTTP |
Content-Type: application/json Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
Réponse |
L'identifiant du nouvel enregistrement et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"recordId": "7",
"modId": "0"
},
"messages": [
{
"code": "0",
"message": "OK"
}
]
}
Consultez la section Codes d'erreur. |
Supprimer un enregistrement
Pour supprimer un enregistrement, utilisez une méthode HTTP DELETE avec le point de terminaison API records
en indiquant le nom de la base de données, le modèle et l'identifiant de l'enregistrement.
Méthode HTTP | DELETE |
---|---|
URL | /fmi/data/version/databases/nom-base/layouts/nom-modèle/records/id-enregistrement
version est la version FileMaker Data API demandée, soit Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
En-tête HTTP | Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun |
Réponse |
Un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Obtenir un seul enregistrement
Pour obtenir un enregistrement, utilisez une méthode HTTP GET avec le point de terminaison API records
en indiquant le nom de la base de données, le modèle et l'identifiant de l'enregistrement. Vous pouvez également indiquer des informations de table externe pour limiter le nombre d'enregistrements liés renvoyés.
Méthode HTTP | GET |
---|---|
URL | Format 1 : /fmi/data/version/databases/nom-base/layouts/nom-modèle/records/id-enregistrement
version est la version FileMaker Data API demandée, soit Pour le mot-clé de la table externe : La partie de l'URL correspondant à la table externe est facultative. Si le modèle inclut des tables externes, indiquez leur nom pour améliorer les performances. Si la partie relative aux tables externes est ignorée, l'appel renvoie tous les enregistrements liés dans toutes les tables externes du modèle. Pour Pour Si vous voulez que les données de la réponse suivent un modèle différent, utilisez le paramètre Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
En-tête HTTP | Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun |
Réponse | Les données de l'enregistrement au format JSON et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"data": [
...
]
},
"messages": [{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Remarques
- Afin de renvoyer des données pour des rangées précises de la table externe, utilisez
_offset.nom-table
et_limit.nom-table
. Un nom de table externe peut être le nom de l'objet tel qu'indiqué dans l'Inspecteur de FileMaker Pro Advanced ou le nom de la table liée. Si vous n'indiquez aucune valeur de décalage ou de limite pour les rangées de la table externe, le décalage par défaut est de 1 et la limite par défaut de 50 enregistrements.
Obtenir une plage d'enregistrements
Pour obtenir une plage d'enregistrements, utilisez une méthode HTTP GET avec le point de terminaison API records
en indiquant le nom de la base de données, le modèle et des informations supplémentaires (enregistrement de départ et nombre d'enregistrements). Précisez éventuellement l'ordre de tri des enregistrements. Vous pouvez également indiquer des informations de table externe pour limiter le nombre d'enregistrements liés renvoyés.
Méthode HTTP | GET |
---|---|
URL |
Format 1 (renvoie jusqu'aux 100 premiers enregistrements) :
version est la version FileMaker Data API demandée, soit Pour Pour Pour la spécification Pour le mot-clé de la table externe : La partie de l'URL correspondant à la table externe est facultative. Si le modèle inclut des tables externes, indiquez leur nom pour améliorer les performances. Si la partie relative aux tables externes est ignorée, l'appel renvoie tous les enregistrements liés dans toutes les tables externes du modèle. Pour Pour Si vous voulez que les données de la réponse suivent un modèle différent, utilisez le paramètre Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
En-tête HTTP | Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Aucun |
Réponse |
Les données de l'enregistrement au format JSON et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"data": [
...
]
},
"messages": [{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Remarques
- Si vous n'indiquez aucune valeur de décalage et de limite, le décalage par défaut est de 1 et la limite de 100 enregistrements :
_offset=1&_limit=100
- Sans mot-clé sortOrder, la valeur par défaut est
ascend
. Par exemple,&_sort=[{ "fieldName": "Idenregistrement" }]
est traité comme :&_sort=[{ "fieldName": "Idenregistrement", "sortOrder": "ascend" }]
- Afin de renvoyer des données pour des rangées précises de la table externe, utilisez
_offset.nom-table
et_limit.nom-table
. Un nom de table externe peut être le nom de l'objet tel qu'indiqué dans l'Inspecteur de FileMaker Pro Advanced ou le nom de la table liée. Si vous n'indiquez aucune valeur de décalage ou de limite pour les rangées de la table externe, le décalage par défaut est de 1 et la limite par défaut de 50 enregistrements.
Uploader des données de conteneur
Pour uploader des données de conteneur, utilisez une méthode HTTP POST avec le point de terminaison API containers
en indiquant le nom de la base de données, le nom du modèle, l'identifiant de l'enregistrement, le nom de la rubrique et une répétition de rubrique.
Méthode HTTP | POST |
---|---|
URL | Format : /fmi/data/version/databases/nom-base/layouts/nom-modèle/records/id-enregistrement/containers/nom-rubrique/répétition-rubrique
|
En-tête HTTP | Content-Type: multipart/form-data Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Un flux de données MIME en plusieurs parties (Content-Type: multipart/form-data) dans lequel l'objet de rubrique Conteneur est défini comme une partie avec Utilisez une bibliothèque qui prend en charge la spécification de multipart/form-data. |
Réponse |
Un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Remarques
- La rubrique Conteneur doit être une rubrique de l'occurrence de table du modèle indiqué. Elle ne peut pas être une rubrique Conteneur d'une table liée.
- FileMaker Data API autorise tous les types MIME. Aucune vérification des types MIME n'est effectuée visant à les limiter aux types pris en charge par les logiciels FileMaker ou le serveur Web.
- FileMaker Data API met en cache les données de la rubrique Conteneur dans un dossier cache de l'ordinateur maître au moment où elles sont uploadées. Néanmoins, les données mises en cache sont supprimées à la fin de la requête.
Exécuter une requête
Pour exécuter une requête, utilisez une méthode HTTP POST avec le point de terminaison API _find
en indiquant le nom de la base de données, le modèle et des informations supplémentaires (rubriques de requête et critères, ordre de tri, enregistrement de départ et nombre d'enregistrements). Vous pouvez également indiquer des informations de table externe pour limiter le nombre d'enregistrements liés renvoyés.
Méthode HTTP | POST |
---|---|
URL |
/fmi/data/version/databases/nom-base/layouts/nom-modèle/_find
version est la version FileMaker Data API demandée, soit |
En-tête HTTP |
Content-Type: application/json Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Une requête au format JSON spécifiant les rubriques et critères de recherche. Paramètres facultatifs indiquant les requêtes à ignorer, l'ordre de tri, l'enregistrement de départ (décalage), le nombre d'enregistrements (limite) et les tables externes pour limiter le nombre d'enregistrements liés renvoyés. Si vous voulez que les données de la réponse suivent un modèle différent, utilisez le paramètre Par exemple : {
"query":[
{"Group": "=Chirurgien"},
{"Région de travail" : "Ile de France", "omit" : "true"}],
"sort":[
{"fieldName": "Région de travail","sortOrder": "ascend"},
{"fieldName": "Prénom", "sortOrder": "ascend"} ]
}
Exemple avec décalage, limite et tables externes : {
"query":[
{"Group": "=Chirurgien"},
{"Région de travail" : "Ile de France", "omit" : "true"}],
"portal": ["Table1","Table2"],
"limit": "10",
"offset": "1",
"offset.Table1": "1",
"limit.Table1": "5",
"layout.response": "Docteurs"
}
Vous pouvez exécuter des scripts FileMaker dans le cadre de cette requête en insérant les paramètres |
Réponse |
Les données de l'enregistrement au format JSON et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {
"data": [
...
]
},
"messages": [{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Remarques
- Le tri et le renvoi d'enregistrements peuvent être des tâches fastidieuses. Réduisez le temps de téléchargement des enregistrements en limitant le nombre de rubriques sur le modèle demandé et en omettant les rubriques qui contiennent des commentaires.
- Pour limiter le nombre d'enregistrements et de rangées à afficher dans un ensemble lié, précisez les paramètres offset.nom-table et limit.nom-table.
- Les rubriques de type Global ne sont pas autorisées dans les critères de recherche. Si vous en indiquez, vous recevez un message d'erreur. Au lieu de cela, indiquez la valeur de la rubrique de type Global avant la recherche. Consultez la section Définir des valeurs de rubrique de type Global.
Définir des valeurs de rubrique de type Global
Pour définir les valeurs des rubriques de type Global, utilisez une méthode HTTP PATCH avec le point de terminaison API globals
en indiquant le nom de la base de données.
Méthode HTTP | PATCH |
---|---|
URL | /fmi/data/version/databases/nom-base/globals
version est la version FileMaker Data API demandée, soit |
En-tête HTTP |
Content-Type: application/json Authorization : Bearer jeton-session, où jeton-session est la valeur X-FM-Data-Access-Token unique de la session de base de données |
Paramètres | Un objet JSON avec paires rubrique/valeur indiquant les rubriques de type Global à définir. Les rubriques de type Global doivent être définies au moyen de noms de rubrique entièrement qualifiés (nom table::nom rubrique). Par exemple : { "globalFields":
{
"baseTable::gCompany":"FileMaker",
"baseTable::gCode":"95054"
}
}
|
Réponse |
Un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
|
Exécuter des scripts FileMaker
FileMaker Data API peut exécuter des scripts FileMaker :
- en utilisant une méthode HTTP GET avec le point de terminaison API
script
. Consultez la section Exécuter un script. - dans le cadre d'une autre requête en insérant les paramètres
script.prerequest
,script.presort
etscript
dans le corps de la requête. Consultez la section Exécuter un script avec une autre requête.
Exécuter un script
Pour exécuter un script FileMaker de façon indépendante, utilisez une méthode HTTP GET avec le point de terminaison API script
.
Méthode HTTP | GET |
---|---|
URL | /fmi/data/version/databases/nom-base/layouts/nom-modèle/script/nom-script
version est la version FileMaker Data API demandée, soit |
En-tête HTTP | Content-Type: application/json |
Paramètres | script.param est la chaîne de texte à utiliser comme paramètre pour le script nommé d'après nom-script. |
Réponse |
Un corps de réponse vide et un tableau de messages indiquant un code d'erreur de 0. Par exemple : {
"response": {},
"messages":[{"code":"0","message":"OK"}]
}
Consultez la section Codes d'erreur. |
Remarques
- Lorsque vous utilisez FileMaker Data API pour exécuter un script, assurez-vous qu'il possède un nom unique. Si plusieurs scripts portent le même nom, FileMaker Data API ne peut pas contrôler le script appelé, même si les scripts se trouvent dans différents dossiers.
Exécuter un script avec une autre requête
Pour exécuter un script FileMaker dans le cadre d'une autre requête, insérez les paramètres script.prerequest
, script.presort
et script
dans le corps de la requête.
Paramètre | Valeur |
---|---|
script |
Nom du script à exécuter après l'action indiquée par l'appel d'API (obtenir, créer, modifier, dupliquer, supprimer, rechercher) et après le tri suivant. |
script.param |
Chaîne de texte à utiliser comme paramètre pour le script nommé d'après script . |
script.prerequest |
Nom du script à exécuter avant l'action indiquée par l'appel d'API et le tri suivant. |
script.prerequest.param |
Chaîne de texte à utiliser comme paramètre pour le script nommé d'après script.prerequest . |
script.presort |
Nom du script à exécuter après l'action indiquée par l'appel d'API mais avant le tri suivant. |
script.presort.param |
Chaîne de texte à utiliser comme paramètre pour le script nommé d'après script.presort . |
Ordre d'exécution du script
Vous pouvez préciser les paramètres script.prerequest
, script.presort
et script
dans un seul et même appel d'API. Définissez les mots-clés une fois seulement. L'hôte traite ces paramètres dans le cadre de l'appel d'API, dans cet ordre :
- Accédez au modèle indiqué dans l'URL.
- Si nécessaire, exécutez le script nommé d'après
script.prerequest
. - Exécutez l'action spécifiée par l'appel d'API (obtenir, créer, modifier, dupliquer, supprimer, rechercher).
- Si nécessaire, exécutez le script nommé d'après
script.presort
. - Exécutez le tri indiqué par l'appel d'API :
- Pour obtenir une plage d'enregistrements, exécutez le tri spécifié par le paramètre
_sort
. - Pour exécuter une requête, procédez au tri spécifié par le paramètre
sort
.
- Pour obtenir une plage d'enregistrements, exécutez le tri spécifié par le paramètre
- Si nécessaire, exécutez le script nommé d'après
script
. - Renvoyez le jeu de résultats pour cet appel d'API en appliquant si nécessaire les paramètres de décalage et de limite.
Remarques
- Pour les appels utilisant des méthodes HTTP GET et HTTP DELETE, les paramètres de script sont intégrés en tant que paramètres URL. Consultez les sections Obtenir un seul enregistrement, Obtenir une plage d'enregistrements et Supprimer un enregistrement.
- Pour les appels utilisant les méthodes HTTP POST et HTTP PATCH, les paramètres de script sont intégrés dans le corps de la requête. Consultez les sections Créer un enregistrement, Modifier un enregistrement et Exécuter une requête.
- Vous pouvez indiquer une seule chaîne de texte pour les paramètres de script
script.param
,script.prerequest.param
etscript.presort.param
. Pour transmettre plusieurs paramètres, vous pouvez créer une chaîne délimitant les paramètres et faire en sorte que votre script analyse chacun des paramètres. Par exemple, transmettez param1|param2|param3 en tant que liste, en utilisant le caractère | de codage URL de la façon suivante :param1%7Cparam2%7Cparam3
- Les résultats de script sont renvoyés à l'aide des paramètres
scriptResult
,scriptResult.prerequest
etscriptResult.presort
dans les données JSON. Les erreurs de script sont renvoyées à l'aide des paramètresscriptError
,scriptError.prerequest
etscriptError.presort
dans les données JSON. (Les erreurs de script ne sont pas renvoyées à l'aide d'un code d'état HTTP.)
Par exemple :
https://<hôte>/fmi/data/v1/databases/clients/layouts/saisie/records/14?script=MàJTraitement&script.param=14
Par exemple :
{"query":[{"Titre":"Responsable bureau"}], "script.prerequest":"Supprimer les doublons"}
Codes d'erreur
Quand une erreur se produit, FileMaker Data API renvoie :
- un code d'état de niveau HTTP 400 pour les erreurs HTTP standard
- un code d'état HTTP 500 pour les erreurs FileMaker
Code d'état HTTP | Catégorie HTTP | Description |
---|---|---|
400 | Requête incorrecte | Survient lorsque le serveur ne peut pas traiter la requête car elle n'est pas complète ou valide. |
401 | Non autorisé | Survient lorsque le client n'est pas autorisé à accéder à l'API. Si cette erreur survient alors que vous tentez de vous connecter à une session de base de données, vous rencontrez un problème avec le compte utilisateur ou le mot de passe indiqué. Si cette erreur survient avec d'autres appels, le jeton d'accès n'est pas spécifié ou n'est pas valide. |
403 | Interdit | Survient lorsque le client est autorisé, mais l'appel tente une action interdite pour une raison autre. |
404 | Introuvable | Survient si l'appel utilise une URL avec un schéma non valide. Recherchez les erreurs de syntaxe dans l'URL. |
405 | Méthode non autorisée | Survient lorsqu'une méthode HTTP incorrecte est utilisée avec un appel. |
415 | Type de média non pris en charge | Survient si l'en-tête requis est manquant ou incorrect pour la requête :
|
500 | Erreur FileMaker | Inclut les messages d'erreur et les codes d'erreur FileMaker. Consultez la section Codes d'erreur FileMaker de l'Aide FileMaker Pro Advanced. |
Remarques
- Si le moteur FileMaker Data API n'est pas en cours d'exécution ou est inaccessible, les codes d'erreur ou les messages renvoyés sont liés à votre serveur Web (Apache ou IIS).
- Pour plus d'informations sur les codes d'état HTTP supplémentaires renvoyés, consultez le site www.w3.org.
Héberger, tester et surveiller des solutions FileMaker Data API
Héberger une solution FileMaker Data API
- Passez en revue toutes les étapes décrites dans la section Préparer les bases de données pour un accès via FileMaker Data API.
- Assurez-vous que l'accès via FileMaker Data API a été activé et correctement configuré dans l'Admin Console. Consultez le Centre de documentation produit.
- Vérifiez le bon fonctionnement du serveur Web et du moteur FileMaker Data API.
-
Cryptez les communications.
FileMaker Data API impose à vos applications d'API REST d'utiliser une connexion HTTPS. Les connexions HTTPS utilisent le cryptage SSL (Secure Sockets Layer) pour les communications.
FileMaker Server fournit un certificat SSL standard signé par FileMaker, Inc. qui ne vérifie pas le nom du serveur. Le certificat par défaut de FileMaker est uniquement destiné à des fins de tests. Un certificat SSL personnalisé est requis à des fins de production. Consultez le Guide d'installation et de configuration de FileMaker Server.
Le langage ou la technologie que vous utilisez pour appeler FileMaker Data API doit prendre en charge le protocole TLS (Transport Layer Security) v1.2 pour communiquer avec le serveur Web.
Tester une solution FileMaker Data API
Avant de mettre votre solution FileMaker Data API en production, vérifiez qu'elle fonctionne comme prévu.
- Testez les fonctions telles que la recherche, l'ajout et la suppression des enregistrements avec différents comptes et de jeux privilèges.
- Vérifiez que les jeux de privilèges fonctionnent comme prévu en les testant avec différents comptes. Faites en sorte que des utilisateurs non autorisés ne puissent pas accéder à vos données ni les modifier.
- Testez le comportement de votre solution et vérifiez qu'il est identique d'un système d'exploitation à l'autre.
Surveiller les solutions FileMaker Data API
L'administrateur serveur peut utiliser l'Admin Console pour démarrer ou arrêter le moteur FileMaker Data API, surveiller les clients FileMaker Data API, suivre l'utilisation des appels FileMaker Data API et télécharger le fichier journal de FileMaker Data API.
Pour | Utilisez |
---|---|
Démarrer ou arrêter le moteur FileMaker Data API |
L'onglet Connecteurs > FileMaker Data API de l'Admin Console. Consultez la section « Démarrage ou arrêt des composants FileMaker Server » de l'Aide FileMaker Server ou la documentation produit FileMaker Cloud dans le Centre de documentation produit. Avec FileMaker Server, vous pouvez également utiliser une commande d'interface de ligne de commande (CLI). Consultez l'Aide de l'interface de ligne de commande (CLI). |
Surveiller les clients FileMaker Data API |
La liste des clients sur la page Bases de données de l'Admin Console. Cette page présente des informations détaillées sur les clients et les bases de données en cours d'évaluation. Depuis cette page, vous pouvez déconnecter les clients FileMaker Data API, mais vous ne pouvez pas leur envoyer de messages. Consultez la section « Administration des clients » de l'Aide FileMaker Server ou la documentation produit FileMaker Cloud dans le Centre de documentation produit. |
Suivre l'utilisation des appels FileMaker Data API |
L'onglet Connecteurs > FileMaker Data API de l'Admin Console. Cet onglet affiche la limite annuelle de FileMaker Data API définie par votre licence, la quantité des données transmises depuis la date de réinitialisation annuelle précédente, et la date de réinitialisation annuelle de votre licence.
|
Afficher le fichier journal FileMaker Data API |
Les clients FileMaker Data API étant connectés à une base de données, les données statistiques les concernant sont consignées dans le fichier fmdapi.log. Consultez la section « Fichier journal de FileMaker Data API » de l'Aide FileMaker Server ou la documentation produit FileMaker Cloud dans le Centre de documentation produit. |
Intégration de FileMaker Data API à Tableau
A propos de l'intégration à Tableau
Utilisez un connecteur de données Web pour définir une connexion entre une base de données FileMaker hébergée et Tableau. Un connecteur de données Web est un exemple de mise en œuvre qui accepte les appels d'API REST au format JSON. Cette connexion utilise FileMaker Data API pour importer des données depuis une base de données FileMaker hébergée dans Tableau.
Utilisez FileMaker Server ou un produit FileMaker Cloud pour héberger la base de données FileMaker. Ces hôtes peuvent être intégrés aux produits Tableau suivants :
Tableau Desktop, version 10 ou ultérieure pour Windows ou macOS. Utilisez le Connecteur de données Web FileMaker pour Tableau Desktop pour définir une connexion à Tableau Desktop.
Tableau Server, installé sur site ou hébergé par le client. Hébergez le Connecteur de données Web FileMaker pour Tableau Server sur Tableau Server.
Tableau Cloud. Exécutez une instance de Tableau Server pour procurer des données à Tableau Cloud. Hébergez le Connecteur de données Web FileMaker pour Tableau Server sur Tableau Server.
Tableau Online. Nécessite l'utilisation de Tableau Bridge.
Conditions requises pour le Connecteur de données Web
Le Connecteur de données Web FileMaker pour Tableau nécessite :
- Une base de données FileMaker Pro Advanced protégée par mot de passe et contenant les données à importer. La base de données doit être hébergée sur FileMaker Server ou un hôte FileMaker Cloud. FileMaker Server et FileMaker Cloud for AWS prennent en charge l'authentification de fichier FileMaker et l'authentification OAuth. FileMaker Cloud requiert l'authentification FileMaker ID.
-
Un point de terminaison API REST valide.
Avec FileMaker Server, ce point de terminaison est un point de connexion HTML qui fournit les informations nécessaires aux services Web. Ce point de terminaison a pour format
https://<nomhôte>/fmi/data/version/tableau/fm_connector.html
oùnomhôte
correspond au nom d'hôte entièrement qualifié de votre déploiement FileMaker Server.Par exemple :
https://monserveur.monentreprise.com/fmi/data/v1/tableau/fm_connector.html
Un certificat SSL personnalisé valide sur l'hôte. Le Connecteur de données Web FileMaker pour Tableau n'autorisera pas l'importation des données sans un certificat SSL personnalisé valide.
Remarque :Si votre hôte utilise un certificat SAN (autre nom de l'objet), le nom d'hôte doit correspondre au nom commun utilisé dans ce certificat.
Se préparer à importer des données dans Tableau
Pour définir le modèle servant à l'importation et pour activer la base de données permettant d'accéder à FileMaker Data API, suivez les étapes indiquées dans la section Préparer les bases de données pour un accès via FileMaker Data API.
Remarque :Pour importer des données dans Tableau, la table doit contenir au moins un enregistrement et des données d'enregistrement.
Les types de rubrique FileMaker suivants sont importés sous forme de types de données Tableau.
Type de rubrique FileMaker | Type de données Tableau |
---|---|
Texte | Chaîne de caractères |
Date | Date |
Heure | Chaîne de caractères |
Horodatage | Date & heure |
Nombre | Nombre (décimal) |
Les types de rubrique FileMaker suivants ne sont pas pris en charge au moment de l'importation dans Tableau :
- rubriques Conteneur
- rubriques de type Statistique. Vous pouvez créer une rubrique de type Statistique dans Tableau d'après les données que vous importez depuis FileMaker.
- rubriques Calcul. Vous pouvez créer une rubrique de type Calcul dans Tableau d'après les données que vous importez depuis FileMaker.
- données de graphique
- données provenant de tables externes FileMaker Pro Advanced. Pour importer des données depuis des enregistrements liés, créez un modèle FileMaker Pro Advanced d'après la table liée, ou importez des données dans Tableau depuis des tables FileMaker Pro Advanced distinctes, puis créez un lien entre elles dans Tableau.
- répétitions de rubrique dans lesquelles l'affichage des rubriques multivaluées pour Afficher les répétitions intègre des valeurs multiples. Une seule répétition est acceptée.
- valeurs non numériques dans les rubriques de type Nombre. Si Tableau détecte des valeurs non numériques dans des rubriques de type Nombre, les données ne sont pas importées.
N'utilisez aucun mot réservé comme noms de rubrique dans FileMaker Pro Advanced.
Configurer la connexion des données dans Tableau
Suivez les instructions de l'Aide en ligne du produit Tableau qui décrivent l'utilisation des connecteurs de données Web.
Par exemple, pour configurer la connexion des données avec le Connecteur de données Web FileMaker Server pour Tableau Desktop :
- Dans Tableau Desktop, sous Connexion (à gauche de l'écran), choisissez Plus > Connecteur de données Web.
- Saisissez l'URL de votre point de terminaison FileMaker Server.
https://<nomhôte>/fmi/data/v1/tableau/fm_connector.html
où<nomhôte>
correspond au nom d'hôte entièrement qualifié de FileMaker Server. -
Dans la boîte de dialogue Importer des données depuis un fichier FileMaker :
-
Connectez-vous à la base de données FileMaker Pro Advanced en saisissant les informations suivantes ou en utilisant un fournisseur d'identité OAuth.
- Nom de la base de données source : nom de la base de données FileMaker Pro Advanced
- Nom du modèle source : nom du modèle FileMaker Pro Advanced
- Nom du compte : nom du compte FileMaker Pro Advanced détenant le privilège fmrest
- Mot de passe : mot de passe du compte FileMaker Pro Advanced
- Sélectionnez Activer l'actualisation incrémentielle pour activer l'actualisation incrémentielle.
-
- Cliquez sur Importer des données FileMaker.
Tableau importe les données. La durée du traitement dépend du nombre d'enregistrements importés, de la charge du serveur et du débit du réseau. Tableau établit une correspondance entre les noms de rubrique et données FileMaker Pro Advanced et les dimensions et mesures. Les données de type Chaîne de caractères sont habituellement mises en correspondance avec les dimensions, et les données numériques avec les mesures. Cette mise en correspondance intervient automatiquement au moment de l'importation. Toutefois, vous pouvez la personnaliser.
Remarques
-
Vérifiez que le nom de modèle source que vous indiquez est bien unique. Si votre base de données possède deux modèles du même nom, Tableau ne peut pas les distinguer au moment de connecter les données. Tableau affiche un nom seulement qui peut ne pas être le modèle souhaité.
- Lorsque vous configurez la connexion des données dans Tableau, ne sélectionnez pas l'option invitant l'utilisateur à s'authentifier.
-
Utilisez l'option Activer l'actualisation incrémentielle pour importer uniquement les nouveaux enregistrements.
- Après avoir sélectionné l'option Activer l'actualisation incrémentielle et importé les données FileMaker, cliquez sur l'onglet Feuille dans Tableau pour accéder à la feuille de calcul.
- Choisissez Données > FM : nom-base/nom-modèle > Extraire > Actualisation incrémentielle.
- Sélectionnez l'onglet Source de données.
- Cliquez sur Mettre à jour pour afficher les nouveaux enregistrements.
- En activant l'actualisation incrémentielle, vous ne créez aucune connexion active et directe entre Tableau et la base de données FileMaker hébergée. Vous devez exécuter l'actualisation incrémentielle manuellement.
- L'actualisation incrémentielle importe uniquement les nouveaux enregistrements. Les enregistrements FileMaker Pro Advanced qui ont été modifiés ou supprimés ne sont pas mis à jour. Pour obtenir les données modifiées ou pour retirer les enregistrements supprimés, vous devez créer un nouveau classeur dans Tableau et réimporter les données.
- L'actualisation incrémentielle crée une rubrique appelée -Idenregistrement. Toute modification apportée à cette rubrique peut empêcher l'actualisation incrémentielle.
- Dans Tableau, vous pouvez modifier le schéma et les données qui ont été importées. Toutefois, si vous les modifiez dans Tableau, ces modifications ne sont pas répercutées dans le fichier FileMaker Pro Advanced.
- Si vous modifiez le schéma dans le fichier FileMaker Pro Advanced, vous devez créer un nouveau classeur dans Tableau, puis réimporter les données.
- Si vous fermez le classeur Tableau puis que vous le rouvrez, l'importation incrémentielle ne fonctionne plus.
- Une fois la connexion aux données établie dans Tableau, le Connecteur de données Web FileMaker met en cache le compte utilisateur et le mot de passe jusqu'à la fermeture du classeur. Les points suivants sont également pris en compte :
- Si la session FileMaker expire pendant que vous êtes connecté à Tableau, le Connecteur de données Web FileMaker tente de reconnecter l'utilisateur à FileMaker Server.
- Si la connexion à Tableau expire, le Connecteur de données Web FileMaker tente de vous reconnecter à la base de données hébergée tant que le classeur Tableau est ouvert.
- Si le jeton d'actualisation de Tableau expire, vous devez republier la source de données dans Tableau Desktop
- Si le classeur est fermé puis rouvert, vous devez saisir à nouveau vos nom de compte et mot de passe pendant l'importation de données initiale.
- La page Source de données de Tableau affiche jusqu'à 1 000 000 (un million) de lignes, même si un nombre plus important d'enregistrements est importé.
- L'utilisation de caractères spéciaux dans les noms de base de données, de table et de modèle empêche Tableau d'établir une connexion de données.