Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
open:tech:dev:sharix_open_-_primery_json [2023/05/17 11:20] – sharixadmin | open:tech:dev:sharix_open_-_primery_json [2023/06/21 23:37] (текущий) – sharixadmin |
---|
=== Примеры JSON для обмена данными между системами === | ==== Примеры JSON для обмена данными между системами ==== |
| |
| |
| === Пример OrderTicket === |
| |
Данный JSON должен формироваться посредством вызова API из нескольких разных источников. | Данный JSON должен формироваться посредством вызова API из нескольких разных источников. |
| |
{ | { |
| "order_synced": 1, #[POST] - заявка из синхронизируемой части |
| |
"ticket": 123, | "ticket": 123, |
"client_screen_name": "Fedor Client", | "client_screen_name": "Fedor Client", |
"resource_id": 1, | "resource_id": 1, |
| "attempts": null, |
"attempts": null | "asap": true |
} | } |
| |
=== Вариант с комментариями источников для получения данных === | === Вариант с комментариями источников для получения данных === |
<code> | <code> |
| [POST]/openlocal/api/orderslocal/ - данные которые будут заданы при пост запросе |
| [PUT]/openlocal/api/orderslocal/id/ - данные которые буду изменены при пут запросе |
{ | { |
| "order_synced": 1, #[POST] - заявка из синхронизируемой части |
"ticket": 123, #id из tickets | "ticket": 123, #id из tickets |
"status": 111, #status из tickets | "status": 111, #[PUT] status из tickets |
| |
"priority": 1, #это берем из tickets, по идее можно будет повышать приоритет для привлечения внимания техподдержки | "priority": 1, #[PUT] это берем из tickets, по идее можно будет повышать приоритет для привлечения внимания техподдержки |
"title": "123", #это берем из tickets | "title": "123", #[PUT] это берем из tickets |
"note": "123", #это берем из tickets | "note": "123", #[PUT] это берем из tickets |
"due_date": 2023-05-15T17:16:22.955601Z, #это берем из tickets или из api сервиса - должно совпадать это значение - по сути это крайний срок жизни заказа | "due_date": 2023-05-15T17:16:22.955601Z, #[PUT] это берем из tickets или из api сервиса - должно совпадать это значение - по сути это крайний срок жизни заказа |
| |
"id_metaservice": 1, #это из api сервиса, где хранится заказ | "id_metaservice": 1, #[PUT] это из api сервиса, где хранится заказ |
"is_global": false, #это из api сервиса, где хранится заказ | "is_global": false, #[PUT] это из api сервиса, где хранится заказ |
"is_visible": false,#это из api сервиса, где хранится заказ | "is_visible": false,#[PUT] это из api сервиса, где хранится заказ |
"service": 1, #это из api сервиса, где хранится заказ | "service": 1, #[PUT] это из api сервиса, где хранится заказ |
"service_type": 1, #это из api сервиса, где хранится заказ | "service_type": 1, #[PUT] это из api сервиса, где хранится заказ |
| |
"status_changed_date": "2023-05-15T17:16:22.955601Z", #это из tickets, для нового заказа оно эквивалентно time_placed | "status_changed_date": "2023-05-15T17:16:22.955601Z", #[PUT] это из tickets, для нового заказа оно эквивалентно time_placed |
"time_placed": "2023-05-15T16:40:32.179777Z", #это из api сервиса, где хранится заказ, должно совпадать (хотя бы частично, если в tickets меньше информации хранится) с "created_date" в tickets | "time_placed": "2023-05-15T16:40:32.179777Z", #[PUT] это из api сервиса, где хранится заказ, должно совпадать (хотя бы частично, если в tickets меньше информации хранится) с "created_date" в tickets |
"time_start": "2023-05-15T16:40:32.179777Z", #это и все ниже - из api сервиса, где хранится заказ, если не написано иное | "time_start": "2023-05-15T16:40:32.179777Z", #[PUT] это и все ниже - из api сервиса, где хранится заказ, если не написано иное |
"time_start_predicted": "2023-05-15T16:40:32.179777Z", | "time_start_predicted": "2023-05-15T16:40:32.179777Z", #[PUT] |
"time_finish_predicted": "2023-05-15T16:40:32.179777Z", | "time_finish_predicted": "2023-05-15T16:40:32.179777Z", #[PUT] |
"time_start_real": "2023-05-15T16:40:32.179777Z", | "time_start_real": "2023-05-15T16:40:32.179777Z", #[PUT] |
"time_finish_real": "2023-05-15T16:40:32.179777Z", | "time_finish_real": "2023-05-15T16:40:32.179777Z", #[PUT] |
| |
"order_place_type": "address", #может быть address, coords или both | "order_place_type": "address", #[POST][PUT] может быть address, coords или both |
"order_place_start": "р-н Беговой", #вычисляется на языке местности 1 раз на основе координат, если адрес не задавался | "order_place_start": "р-н Беговой", #[POST][PUT] вычисляется на языке местности 1 раз на основе координат, если адрес не задавался |
"order_place_start_gps": "55.751941, 37.607513", #вычисляются на основе адреса, если координаты не задавались | "order_place_start_gps": "55.751941, 37.607513", #[POST][PUT] вычисляются на основе адреса, если координаты не задавались |
"order_place_start_sector": 4, #вычисляется 1 раз на основе координат | "order_place_start_sector": 4, #[POST][PUT] вычисляется 1 раз на основе координат |
"order_place_start_real": "р-н Беговой", #вычисляется на основе координат 1 раз по факту заполнения | "order_place_start_real": "р-н Беговой", #[POST][PUT] вычисляется на основе координат 1 раз по факту заполнения |
"order_place_start_real_gps": "55.751941, 37.607513", #фиксируется приложением в момент начала заказа | "order_place_start_real_gps": "55.751941, 37.607513", #[POST][PUT] фиксируется приложением в момент начала заказа |
"order_place_finish_predicted": "р-н Мещанский", #вычисляется 1 раз на основе координат или сектора, зависит от логики сервиса | "order_place_finish_predicted": "р-н Мещанский", #[POST][PUT] вычисляется 1 раз на основе координат или сектора, зависит от логики сервиса |
"order_place_finish_predicted_gps": "55.751941, 37.607513", | "order_place_finish_predicted_gps": "55.751941, 37.607513", #[POST][PUT] |
"order_place_finish_sector": 4, | "order_place_finish_sector": 4, #[POST][PUT] |
"order_place_finish_real": "р-н Мещанский", #вычисляется 1 раз на основе координат | "order_place_finish_real": "р-н Мещанский", #[POST][PUT] вычисляется 1 раз на основе координат |
"order_place_finish_real_gps": "55.751941, 37.607513", #фиксируется приложением в момент завершения заказа | "order_place_finish_real_gps": "55.751941, 37.607513", #[POST][PUT] фиксируется приложением в момент завершения заказа |
| |
"predicted_price": 1000, #рассчитывается на этапе регистрации заказа и хранимое | "predicted_price": 1000, #[PUT] рассчитывается на этапе регистрации заказа и хранимое |
"real_price": 1001, #обновляется приложением, отправляется на сервис при необходимости в логике обработчиков | "real_price": 1001, #[PUT] обновляется приложением, отправляется на сервис при необходимости в логике обработчиков |
"payment_transaction_id": 1, | "payment_transaction_id": 1, #[POST][PUT] |
"rating_id": 1, | "rating_id": 1, #[POST][PUT] |
| |
"provider": 1, #это из api сервиса, должно быть эквивалентно "assigned_to" в тикетах (если функционал позволяет назначить тикет на того, кто не в листе, если не позволяет - то assigned_to должно быть отдельно и может быть null либо назначенный сотрудник для обработки) | "provider": 1, #[PUT] это из api сервиса, должно быть эквивалентно "assigned_to" в тикетах (если функционал позволяет назначить тикет на того, кто не в листе, если не позволяет - то assigned_to должно быть отдельно и может быть null либо назначенный сотрудник для обработки) |
"provider_screen_name": "Vasya Worker", | "provider_screen_name": "Vasya Worker", |
"receiver": 1, | "receiver": 1, #[PUT] |
"receiver_screen_name": "Marfa Wife", | "receiver_screen_name": "Marfa Wife", |
"client_id": 1, #это из api сервиса, где хранится заказ - но должно совпадать с "created_by" в tickets | "client_id": 1, #[PUT] это из api сервиса, где хранится заказ - но должно совпадать с "created_by" в tickets |
"client_screen_name": "Fedor Client", | "client_screen_name": "Fedor Client", |
"resource_id": 1, #это из api сервиса, где хранится заказ | "resource_id": 1, #[POST][PUT] это из api сервиса, где хранится заказ |
"attempts": 1 #это ниоткуда, должно добавляться пустым, обработчики с этим могут работать по необходимости | "attempts": 1, #[POST][PUT] это ниоткуда, должно добавляться пустым, обработчики с этим могут работать по необходимости |
| "asap": true #информация о том, срочный ли заказ |
} | } |
| |
| |
</code> | </code> |
| |
| === Минимально необходимая информация в JSON с примером данных === |
| |
<code> | <code> |
| |
| |
"attempts": null | "attempts": null, |
| "asap": true |
} | } |
| |
| </code> |
| |
| === Пример JSON обычной заявки в тикетах === |
| |
| <code> |
| |
#ticket json example | #ticket json example |
} | } |
| |
| </code> |
| |
| === Пример минимального необходимого набора данных Ticket === |
| |
| <code> |
| |
#ticket minimal example | #ticket minimal example |