myfmbutler/myfmapilibrary-for-js

(Claris) FileMaker 19 API JavaScript 封装器

2.0.0 2020-06-09 09:50 UTC

This package is auto-updated.

Last update: 2024-09-09 19:42:27 UTC


README

演示

团队

Lesterius是欧洲Claris(FileMaker)商业联盟白金会员,在比利时、法国、荷兰、葡萄牙和西班牙运营。我们是一支创意商业顾问团队,与客户共同创建基于FileMaker平台解决方案。
分享知识是我们的DNA的一部分,因此我们开发了这个库,以使FileMaker数据API易于使用JavaScript。
突破应用局限!
Lesterius logo

描述

这个库是(Claris) FileMaker数据API 19的JavaScript封装器。

您可以在这里找到FileMaker数据API 18的PHP封装器。

您可以在版本<= v.1.*的发行版中找到FileMaker数据API 18的JavaScript封装器。

您将能够使用文档中记录的每个功能(通过https://[your server domain]/fmi/data/apidoc访问您的FileMaker服务器数据API文档)。有关数据API的通用Claris文档在这里可用。

安装

推荐通过Composer安装。

composer require myfmbutler/myfmapilibrary-for-js

安装后,您可以通过添加以下代码来调用此JavaScript库:

<script src="DataApi.js"></script>

到您的HTML文件中。

使用方法

准备您的FileMaker解决方案

  1. 在FileMaker服务器管理控制台中启用FileMaker数据API选项。
  2. 在您的FileMaker数据库中创建一个具有'fmrest'权限的特定用户
  3. 为此用户定义记录和布局访问权限

使用库

登录

使用凭据登录

let options = {
        'apiUrl': 'https://test.fmconnection.com/fmi/data',
        'databaseName' : 'MyDatabase',
        'login' : 'filemaker api user',
        'password' : 'filemaker api password'
    };

let api = new DataApi(options);

使用oauth登录

let options = {
        'apiUrl': 'https://test.fmconnection.com/fmi/data',
        'databaseName' : 'MyDatabase',
        'oAuthRequestId' : 'oAuthIdentifier',
        'oAuthIdentifier' : 'oAuthIdentifier'
    };

let api = new DataApi(options);

仅使用生成的令牌

let options = {
        'apiUrl': 'https://test.fmconnection.com/fmi/data',
        'databaseName' : 'MyDatabase',
        'token' : 'generated token'
    };

let api = new DataApi(options);

要重新生成令牌,请使用'login'函数。

/!\ 使用'token登录'方法不可用,请使用'setApiToken'函数。

注销

dataApi.logout();

验证会话

dataApi.validateSession();

创建记录

let data = {
    'FirstName'         : 'John',
    'LastName'          : 'Doe',
    'email'             : 'johndoe@acme.inc'
};

let scripts = [
    {
        'name'  : 'ValidateUser',
        'param' : 'johndoe@acme.inc',
        'type'  : SCRIPT_PREREQUEST
    },
    {
        'name'  : 'SendEmail',
        'param' : 'johndoe@acme.inc',
        'type'  : SCRIPT_POSTREQUEST
    }
];

let portalData = {
  'portalName or OccurenceName' : [
      {
          "Occurence::PortalField 1" : "Value",
          "Occurence::PortalField 2" : "Value",
      }
  ]
 };

let recordId = dataApi.createRecord('layout name', data, scripts, portalData);

删除记录

dataApi.deleteRecord('layout name', recordId, script);

编辑记录

  let recordId = dataApi.editRecord('layout name', recordId, data, lastModificationId, portalData, scripts);

复制记录

  let recordId = dataApi.duplicateRecord('layout name', recordId, scripts);

获取记录

let portals = [
    {
        'name'  : 'Portal1',
        'limit' : 10
    },
    { 
        'name'   : 'Portal2',
        'offset' : 3
    }
];

let record = dataApi.getRecord('layout name', recordId, portals, scripts);

获取记录

let sort = [
    {
        'fieldName' : 'FirstName',
        'sortOrder' : 'ascend'
    },
    {
        'fieldName' : 'City',
        'sortOrder' : 'descend'
    }
];

let record = dataApi.getRecords('layout name', sort, offset, limit, portals, scripts);

查找记录

let query = [
    {
        'fields'  : [
            {'fieldname' : 'FirstName', 'fieldvalue' : '==Test'},
            {'fieldname' : 'LastName', 'fieldvalue' : '==Test'},
        ],
        'options' : {'omit': false}
    }
];

let results = dataApi.findRecords('layout name', query, sort, offset, limit,  portals, scripts, responseLayout);

设置全局字段

let data = {
  'FieldName1'	: 'value',
  'FieldName2'	: 'value'
};

dataApi.setGlobalFields('layout name', data);

执行脚本

dataApi.executeScript('script name', scriptsParams);

将文件上传到容器

dataApi.uploadToContainer('layout name', recordId, containerFieldName, containerFieldRepetition, file);

元数据信息

产品信息

dataApi.getProductInfo();

数据库名称

/!\ 使用'token登录'方法不可用

dataApi.getDatabaseNames();

布局名称

dataApi.getLayoutNames();

脚本名称

dataApi.getScriptNames();

布局元数据

dataApi.getLayoutMetadata('layout name', recordId);