Effectuer une requête de recherche

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 : la version FileMaker Data API demandée peut utiliser v1, v2 ou vLatest

  • version 1 (v1) : la structure des données de table externe renvoyées dépend du paramètre d'affichage (Affichage sous forme de formulaire ou Affichage sous forme de tableau) du modèle spécifiquement utilisé.

    • Affichage sous forme de formulaire : renvoie tous les enregistrements liés

    • Affichage sous forme de tableau : renvoie le premier enregistrement lié

      Remarque  Le fait de modifier le paramètre d'affichage modifie également la structure des données de la table externe pour la valeur renvoyée.

  • version 2 (v2) : la structure des données de la table externe renvoyées est basée sur un Affichage sous forme de formulaire.

  • dernière version (vLatest) : le comportement est basé sur la dernière version de l'API.

nom-base est le nom de la base de données hébergée

nom-modèle est le modèle servant de contexte à la requête

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. Vous pouvez utiliser les paramètres facultatifs pour indiquer 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. Les paramètres de décalage, de limite et de tri couvrent les enregistrements trouvés dans la table du modèle et les enregistrements de table externe non liés. 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.

Si vous voulez que les données de la réponse suivent un modèle différent, utilisez le paramètre layout.response.

Par exemple :

Copier
{
  "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 :

Copier
{
  "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 script.prerequest, script.presort et script dans le corps de la requête. Consultez la section Exécuter des scripts FileMaker.

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 :

Copier
{
  "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.

  • 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.