Использование Intraweb для связи с другим веб-сайтом

#delphi #delphi-5 #intraweb

#delphi #delphi-5 #intraweb

Вопрос:

Delphi 5 Pro Intraweb 7

У меня есть приложение Intraweb, которое использует «устаревшую» серверную часть (файл B-Tree Filer) с потомком TDataSet для обработки доступа к данным. С моей стороны все отлично.

Но теперь у меня есть несколько внешних веб-сайтов, запрашивающих доступ к моим данным. Я создал простые HTML-формы Posts и Gets в качестве средства коммуникации для обработки некоторой интеграции с другими сайтами, но теперь один из запросов просит меня отправить «таблицу» данных обратно. Каждая строка таблицы представляет отдельную запись.

Как я мог бы выполнить это с моей текущей настройкой? Отправил бы я обратно XML-документ и позволил бы другому сайту обрабатывать «таблицу» на их конце? Существует ли набор данных (как в VB или .Эквивалент Net world (определение Dataset), который я мог бы использовать в Delphi, и если да, то как мне отправить его обратно на сайт, отправляющий запрос?

Любые мысли и предложения будут высоко оценены.

Комментарии:

1. Чего именно хочет запрашивающий? «Таблица» может означать много вещей, и каждая из них будет включать в себя различный набор шагов.

2. Также использует ли запрашивающий Delphi? Это важно знать, если вы ищете стандартный тип «DataSet», которым вы можете обмениваться с ними.

3. Не зная больше ( 1 за комментарии @LachlanG), казалось бы, вам нужно определить интерфейс обмена данными между двумя приложениями. XML является хорошим выбором, как и JSON. Наборы данных Delphi могут быть легко представлены в XML (особенно из компонента TClientDataSet).

Ответ №1:

HTTP POST (возврат другой стороне) — хорошая идея, использование асинхронной операции позволяет запускать сбор данных и преобразование вне HTTP-запроса. (Смотрите слайд 4 презентации Мэтта Биддалфа «Dopplr: он сделан из сообщений«)

Ваш сервер получит небольшой HTTP GET-запрос (что-то вроде /context/loaddata?table=TABLENAMEamp;from=1000amp;records=100 ), сохранит этот запрос и немедленно вернет ответ с помощью простого OK .

Затем ваш сервер соберет и подготовит табличные данные (в кодировке XML или JSON) и, наконец, отправит HTTP POST с этим документом на веб-сервер другой стороны. Если эта операция завершается неудачей, ее можно легко повторить, пока другой сервер не ответит «ОК».

Таким образом, если подготовка и преобразование данных занимает много времени, другой стороне не придется ждать (и, возможно, испытывать тайм-аут запроса), пока ваш сервер занят извлечением и преобразованием данных.

Ответ №2:

Во-первых, я хотел бы знать, что использует другая сторона (PHP, Java и т.д.), И есть ли SOAP / XML, JSON / REST и т.д. Уже «в их списке вещей, которые они знают, как делать». Тогда я бы пошел с этим.

Возможно, вам потребуется предоставить им серверную службу SOAP или JSON или какой-либо другой пользовательский документ (HTML / XML / JSON и т.д.), В противном случае предоставьте им необработанные данные в формате, который они могут прочитать, и дайте им URL, которые им нужно знать, чтобы получить доступ к этим данным, которые вы, очевидно, предназначаете для них, а не для общего доступа к вашему веб-сайту через браузер. общедоступный доступ к вашему веб-сайту.