#delphi #delphi-10.3-rio
#delphi #delphi-10.3-rio
Вопрос:
Я искал и читал документы Rad Server. Я даже отправил электронное письмо в службу технической поддержки без особой помощи, но я пытаюсь найти способ обновить мои ресурсы (конечные точки) на сервере Embarcadero Rad.
Мы запускаем Rad Server 10.3.1 и EMS server в Apache на сервере Windows.
У нас начинаются критические изменения в наших конечных точках, и нам нужны более новые версии наших приложений для доступа к более новым версиям API, в то время как более старые версии приложений получают доступ к более старым версиям. Я попытался настроить что-то вроде
https://www.example.com/api/V1/scheduler_appointments
https://www.example.com/api/V2/scheduler_appointments
Однако, когда я запускаю сервер apache, он жалуется на
"Exception":"EPackageError","Message":"Cannot load package 'MyBPL.'"
И он жалуется на «использованные» устройства, которые уже содержались в первой упаковке.
Кто-нибудь смог запустить несколько версий своих файлов ресурсов БПЛ на сервере Rad? Спасибо
Комментарии:
1. Хммм, никогда не создавал два разных бпл-файла с одинаковыми названиями модулей в нем. Отличаются ли имена файлов бпл? Итак, тогда вам лучше всего присвоить именам модулей спецификатор версии, такой как ‘api.xyz.v2.unit1’, а ссылочным блокам использовать ‘unit1’, а затем добавить префиксы имен модулей в проект.
2. @R. Хук — да, они были бы другими. Но у общего устройства одна и та же версия, поэтому у них одинаковое имя файла — и именно здесь я столкнулся с проблемой.
3. Это обычная проблема при работе с бпл-файлами. Вы должны поместить общие модули в отдельный пакет / бпл, а затем связать с общим бпл, чтобы он заработал…
Ответ №1:
Одним из способов может быть включение обоих модулей в один и тот же БПЛ.
unit Unit1;
type
[ResourceName('v1')]
TVResource1 = class(TDataModule)
unit Unit2;
type
[ResourceName('v2')]
TVResource2 = class(TDataModule)
Комментарии:
1. Это интересная мысль. Это означает, что у меня должны быть дубликаты каждой отдельной конечной точки, даже если они не изменились, верно?
2. Да, но тебе все равно придется это сделать? Даже если бы у вас было 2 BPLS, v1 и v2 были бы полностью отдельными API, потому что root — это / v1 и / v2. Также вы могли бы просто вызвать код версии 1 из конечной точки версии 2 для вещей, которые не изменились.