Package: restfmclient
In shortThis library gives you full access to Filemaker with a pythonic api.RESTfm gives you full Create, Read, Update and Delete ( CRUD ) operations on FileMaker Server hosted data via standard HTTP GET, POST, PUT and DELETE methods, this means you can get can get access to Filemaker over HTTP and with this library of also with Python 3.5+.RequirementsPython 3.5+Tested with FileMaker 15 Server, should work with others.Available over pipWe upload releases to pypi, you can get restfmclient over pip:pip3 install restfmclientInstall RESTfm on *nixInstall Apache with mod_php or better nginx with php-fpm, there are a lot tutorials for that.Download RESTfm fromhttps://github.com/GoyaPtyLtd/RESTfm/releasesand extract it to /var/www:wget https://github.com/GoyaPtyLtd/RESTfm/releases/download/v4.0.8/RESTfm-4.0.8.tgz
sudo tar xfz RESTfm-4.0.8.tgz -C /var/wwwCopyFileMaker ServerWeb PublishingFM_API_for_PHP_Standalone.zipon your server (use winscp or scp).Extract FM_API_for_PHP_Standalone.zip on the linux box:cd /var/www/RESTfm/FileMaker/
unzip ~/FM_API_for_PHP_Standalone.zipConfigure RESTfm:nano RESTfm.ini.phpAdjust at least: $config[‘database’][‘hostspec’]Install RESTfm on WindowsSame as with Linux but withXAMPP, get the PHP 5.6 version.Run the exampleGit clone:git clone https://github.com/mariaebene/py-restfmclient.gitInstall the FileMaker example DB on your host, copy examples/restfm_example.fmp12 on it and activate the db.virtualenv:cd py-restfmclient
virtualenv -p /usr/bin/python3.5 --no-site-packages venvpip install:./venv/bin/pip3 install -r requirements_dev.txtinstall restfmclient:./venv/bin/python3 setup.py developRun it:./venv/bin/python3 examples/restfm_client.py "http://<ip-or-dnsname-of-restfm-box>/RESTfm/" admin supersecretpwOr run with the RESTfm demo server:./venv/bin/python3 examples/restfm_client.py "http://demo.restfm.com/RESTfm/" write restfmInstall in your own projectIts recommended to use a virtualenv for your project.Install via pip:pip3 install restfmclientaiohttp works a lot better with cchardet, aiodns and uvloop so install those:pip3 install cchardet aiodns uvloopActivate uvloop in your own scripts:import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())TestingJust installrequirements_dev.txtand runnosetestsfor a simple mocked test:git clone https://github.com/mariaebene/py-restfmclient.git
cd py-restfmclient
virtualenv -p /usr/bin/python3.5 --no-site-packages venv
source venv/bin/activate
pip3 install -r requirements_dev.txt
nosetestsIf you want to run the tests against a live server you have to installexamples/restfm_example.fmp12on the Filemaker server, then you can run it by giving the ENV variableRESTFM_BASE_URL:RESTFM_BASE_URL='http://admin:supersecretpw@<<ip-or-dnsname-of-restfm-box>/RESTfm/' nosetestsDevelopmentPlease provide pull requests if you want to improve py-restfmclient, just make sure that you don’t break the API if not required.
Please run nosetests before you create a PR if you can.To update the test mock files, run:rm -rf restfmclient/tests/data/*
RESTFM_BASE_URL='http://admin:supersecretpw@<<ip-or-dnsname-of-restfm-box>/RESTfm/' RESTFM_STORE_PATH='restfmclient/tests/data/' nosetestsWe usezest.releaserto create a release and upload it to pypi.LICENSECopyright 2017 - Stiftung Maria Ebene, licensed under the MIT license.Changelog1.2.1 (2016-12-17)Fix timezone conversations.1.2.0 (2016-12-17)Improve tests, add more Date types.Better default block_size and convert input search values.Use tzlocal.get_localzone() as default timezone.1.1.0 (2016-12-15)Fix a bug with tests, export Record, add name property to layout.Use type converters as staticmethods, this breaks the API.Fix 2 smaller bugs.Do not chache “count” in layouts, we want always the current number.1.0.0 (2016-12-10)We useSemantic Versioningfrom that point on