DATA API

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
Ответить
andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

DATA API

Сообщение andrey volkov » 14 фев 2020, 05:54

Кто-нибудь уже работал с Filemaker DATA API?
Есть затруднения некоторые, не могу разобраться. Нужен опытный специалист

Короче, ситуация такая
через API я создаю в табличке новую запись. В ней есть поле end_flag
задача удаленного приложения - дождаться, пока серверный скрипт завершит работу и запишет в это поле в эту запись единичку.
Удаленное приложение в цикле через каждые 5 секунд средствами API опрашивает данную табличку и данную запись, читает результат

Так вот возникает такая фигня. Если за время сессии значение в поле поменял кто-то чужой (не само удаленное приложение), то
1) это не сразу видно, долгое время возвращается результат "пусто", хотя на самом деле уже единичка проставлена в запись
2) спустя какое-то время все поля этой записи возвращаются с результатом NO ACCESS

то есть логика такая: если за время сессии запись, к которой обращается удаленное приложение, была КЕМ-ТО модифицирована, то обращаться к этой записи уже невозможно.
Но если сделать выход (Logout), а затем начать новую сессию (Login), то запись эта снова успешно читается.

Вопросы:
1) что это за логика такая странная и для чего так сделано?
2) почему такой долгий таймаут между фактическим изменением записи и временем, когда API начинает понимать, что запись изменена?
3) можно ли как-то обойтись без постоянного Logout-Login в цикле, чтобы отслеживать изменения в БД, которые сделали ДРУГИЕ пользователи?
4) если без этого обойтись нельзя, то есть ли что-то страшное в том, что так часто выполняется вход-выход, может ли это повлечь какие-то неприятные последствия? Или плевать, лишь бы работало?
5) есть ли какие-то другие способы опрашивать БД через API?

ЗЫ. пробовал как чтение записи через API, так и запуск скрипта и чтение его результата. Одинаково.
ЗЫЫ. Привилегия админская выставлена сейчас, ограничений нет никаких.
ЗЫЫЫ. Пробовал ставить флаг в другую таблицу, а результат вычислять по реляции. То же самое все

Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

Re: DATA API

Сообщение Vadim » 03 сен 2020, 15:18

Собрался использовать DATA API для обслуживания терминала очереди. Сейчас застрял на авторизации, не могу получить токен. Через Postman авторизуюсь на ура а из FM не удается никак.

Хотелось собрать клиента ктороый не будет находиться в постоянном коннекте с сервером а подключаться по необходимости.
Копирую опции из Postman но получаю Bad request :cry:
Странно

Код: Выделить всё

"-X POST ¶
-u " & $user & ":" & $password & " ¶
--header \"Content-Type: application/json; charset=utf-8 \" ¶ 
--header \"Connection: keep-alive \"
--header \"Accept-Encoding: deflate, gzip, br \"
--header \"Accept: */* \" ¶ 
--header \"Parameters: {} \" ¶ 
--trace-ascii  $$Trace¶
--dump-header $$Dump"

Vadim
Сообщения: 15
Зарегистрирован: 12 сен 2017, 04:18
Откуда: Ростов на Дону

Re: DATA API

Сообщение Vadim » 03 сен 2020, 15:33

Код: Выделить всё

"-X POST ¶"  
-u " & $user & ":" & $password & " ¶
 -H \"Content-Type: application/json\"¶ 
 -d \"{}\""
вот так сработало.

Danya Korolev
Сообщения: 1
Зарегистрирован: 15 дек 2020, 23:58

Re: DATA API

Сообщение Danya Korolev » 05 сен 2021, 15:40

Добрый день. Уже неделю мучаюсь и не могу понять, что я делаю не так...
Есть АТС из которой мне нужно получить статистику звонков (api json).
В мануале АТС есть информация о том как делать ссылку что бы получить тот или иной вариант получения информации. Получается ссылка вида - https://192.168.1.3:8443/cdrapi?format=JSON&caller=777 В браузере ссылка открывается после введения логина и пароля.
Я использую шаг скрипта - Insert From URL. В доп параметре cURL прописываю:
"-X POST --digest -H \"Content-Type: application/json\" -u cdrapi:cdrapi123 -d \"{}\"" Выдаёт ошибку - 400
Я пробовал всевозможные варианты и всё время одно и тоже - ошибка 400. Прошу помощи..

Аватара пользователя
Arcady
Администратор
Сообщения: 201
Зарегистрирован: 10 сен 2017, 20:45
Контактная информация:

Re: DATA API

Сообщение Arcady » 11 ноя 2021, 20:01

В этой теме три разных вопроса. Давайте разделять же. Не понятно же кому что отвечать ))
Аркадий Перла.
ТриА. Разработка решений для FileMaker
http://tria.pw

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: DATA API

Сообщение andrey volkov » 12 ноя 2021, 07:39

Danya Korolev писал(а):
05 сен 2021, 15:40
Добрый день. Уже неделю мучаюсь и не могу понять, что я делаю не так...
Есть АТС из которой мне нужно получить статистику звонков (api json).
В мануале АТС есть информация о том как делать ссылку что бы получить тот или иной вариант получения информации. Получается ссылка вида - https://192.168.1.3:8443/cdrapi?format=JSON&caller=777 В браузере ссылка открывается после введения логина и пароля.
Я использую шаг скрипта - Insert From URL. В доп параметре cURL прописываю:
"-X POST --digest -H \"Content-Type: application/json\" -u cdrapi:cdrapi123 -d \"{}\"" Выдаёт ошибку - 400
Я пробовал всевозможные варианты и всё время одно и тоже - ошибка 400. Прошу помощи..

вариант прописать юзера и пароль в самой ссылке не пробовали?

Код: Выделить всё

https://cdrapi:cdrapi123@192.168.1.3:8443/cdrapi?format=JSON&caller=777 
либо если используются cURL явно передать в заголовках тип авторизации:

Код: Выделить всё

--header "Authorization: Basic cdrapi:cdrapi123"

andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: DATA API

Сообщение andrey volkov » 12 ноя 2021, 07:48

Arcady писал(а):
11 ноя 2021, 20:01
В этой теме три разных вопроса. Давайте разделять же. Не понятно же кому что отвечать ))
Лично я решил все вопросы через плагин DataBox
флаг записываю плагином в глобальную переменную и таким образом настраиваю общение между серверными скриптами и внешними запросами к серверу через Data aPI

Ответить