|
|
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
Всем привет, подскажите как правильно сделать следующую фичу. Есть таблица заказов в которой храниться ID службы доставки через которую отправили заказ (id_deliveryservice) и номер отправления (tracknumber). Есть таблица слубж доставки типа где храниться информация о службах доставки. IDNAMEAPIKEY Поступили задача трекать статус доставки с программы, у служб доставки есть прекрасные API которые отдают JSON с полной информацией о статусе посылки, у каждой службы доставки своя структура как реквеста так и респонса. Входные и выходные данные для трекинга будут унифицированные (на вход передать трек номер) и получить на выходе данные о статусе. А саму магию делать в средине некой функции или ряда функций. Собственно вопрос как это реализовать чтобы меньше было всяких IF и легко в одном месте можно было добавлять новые службы доставки или редактировать в случае изменения API? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:20:34 |
|
||
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
defecator, Приложение на Delphi, а вот база здесь участия мало принимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:45:22 |
|
||
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
Sashauadefecator, Приложение на Delphi, а вот база здесь участия мало принимает. Тогда надо вспомнить объектно-ориентированное программирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:48:05 |
|
||
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
Поставить один лишний иф и строчку кода -- мелочь по сравнению с реализацией протокола обмена со службой доставки. Более того, службы бывают настолько разные, что у них будет не только реализация отличаться (json, xml, soap, plain text), но и банальные коды ошибок и статусов. Я бы начал с приведением к одному общему внутреннему формату и составлению списка базовых операций с дальнейшей реализации этих самых операций в отдельных модулях (один модуль-класс -- одна служба доставки: инициализация настроек доступа-подключения, получение статуса посылки, заявка на доставку и т.п. верхнеуровневые методы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 23:00:08 |
|
||
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
конечно, тут очень нужно знать подробности но в общем, с т.з. ООП мы имеем необходимость выработать общий класс-предок и для каждой из служб перекрывать методы получения информации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 07:19:48 |
|
||
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
Подскажите еще. Реализовал так. Каждая служба доставки отдельный класс, в котором реализуется своя магия получения статуса отправления. Вопрос, как правильно без костылей обратиться к правильному классу в зависимости от службы доставки (в каждой службы доставки свой уникальный ID)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 23:41:43 |
|
||
|
Подскажите как реализовать.
|
|||
|---|---|---|---|
|
#18+
Sashaua, Процедура трекинга на скриптовом языке. Скрипт в базе и связан со службой доставки. У меня подобным образом организован импорт банковских выписок. Там тоже форматы разные и требуется добавление новых видов: txt, dbf, xml и т.д. Сделал на FastScript. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 08:22:13 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2041816]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 431ms |

| 0 / 0 |
