Инструменты пользователя

Инструменты сайта


open:tech:dev:sharix_open_-_primery_json

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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

© 2022 ShariX