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。
突破应用局限!
描述
这个库是(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解决方案
- 在FileMaker服务器管理控制台中启用FileMaker数据API选项。
- 在您的FileMaker数据库中创建一个具有'fmrest'权限的特定用户
- 为此用户定义记录和布局访问权限
使用库
登录
使用凭据登录
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);