Исходный код вики Методы API


Последние авторы
1 (% class="lead" %)
2 Вопросы, связанные с работой методов API:
3
4 |(% style="border-color:white" %)(((
5 (% class="box infomessage" %)
6 (((
7 **Примечание:** рекомендуется ознакомиться {{html}}<a href="https://docs.loymax.net/xwiki/bin/view/Main/General_information/Used_technologies/">со стеком технологий</a>{{/html}}, используемых системой Loymax.
8 )))
9
10 (((
11 Объекты, используемые во фреймворке **.Net**, переводятся из структуры данных в последовательность байтов или строку. В таком формате данные удобно передавать и хранить данные.
12
13 (% class="box" %)
14 (((
15 Процесс передачи состояния объекта в поток байтов с целью их сохранения его в памяти, в базе данных или файле называется **сериализацией**. Основное назначение сериализации — сохранение состояния объекта, чтобы в случае необходимости была возможность восстановить его.
16 Обратный перевод байтов в структуру данных называется **десериализцией**.
17 )))
18
19 Система Loymax для сериализации/десериализации использует **Newtonsoft.Json.JsonSerializer**.
20 )))
21 )))|(% style="border-color:white; text-align:center; width:25%" %){{lightbox image="Group 1 (1).png"/}}
22
23 Рассмотрим процесс сериализации/десериализации на примере работы метода для [[получения списка брендов>>doc:Main.Integration.Ways_to_use_API.API_methods.Methods_of_public_api.Brands.WebHome||anchor="H41F43E43B44344743543D43843544143F43844143A43043144043543D43443E432"]].
24
25 Все бренды в Системе созданы по одной модели, то есть наследуются от одной конкретной модели. Например:
26
27 * Существует модель **IBrands**.
28 * Пользователь создал бренды: **Brand1 **и **Brand2**.
29 * **Brand1 **и **Brand2 **наследуют все свойства модели **IBrands**.
30 * Т. к. бренды являются объектами .Net, они переводятся в поток байтов для хранения в базе данных.
31
32 Алгоритм получения информации о брендах через методы API работает следующим образом:
33
34 1. Клиент отправляет запрос на получение списка брендов (##GET: /v1.2/brands##).
35 1. Сервер обрабатывает запрос, формирует и отправляет SQL-запрос в базу данных на получение списка брендов.
36 1. База данных в ответ на запрос сервера возвращает серверу список брендов, которые переводятся из потока байтов обратно в объект .Net.
37 1. Сервер возвращает клиенту список брендов в формате JSON:
38 1. Сериализатор **Newtonsoft.Json.JsonSerializer **преобразует объект .Net в формат JSON.
39 1. **Brand1 **и **Brand2 **являются объектами, созданными по модели **IBrands**. Для сериализатора распознает только объект типа **IBrands**. Т. к. сериализатор распознает **Brand1 **и **Brand2 **как отдельные типы, которые наследуются от общего типа **IBrands**, то он присваивает им свойство ##$type##, в котором указана модель, согласно которой был создан объект.
40
41 Таким образом, в ответе на запрос для получения списка брендов, информация о **Brand1 **будет выглядеть следующим образом:
42
43 (% class="box" %)
44 (((
45 ##{
46 "$type": "Loymax.Api.Models.BrandInfo.BrandViewModel, Loymax.Api",
47 "id": 117066,
48 "guid": "00000000-0000-0000-0000-000000000000",
49 "code": "7878b563469841d79a5e5d14fde29cbe",
50 "order": 0,
51 "state": "Normal",
52 "uid": "59e6c953-132d-441b-8ecb-1525b2d06e8b",
53 "name": "5752d88d1bdb45be820b2e1f7d3aff76",
54 "description": "34ec2bc0c8d74b108239e4cd79a18093",
55 "fullDescription": null,
56 "url": null,
57 "images": []
58 }##
59 )))
60
61
62

Новости
Обновления
Облако тегов
Словарь
Наш блог
YouTube и Rutube
Telegram