Методы API
- Управление
- Копировать
- Действия
- Экспорт
- Аннотировать
- Предварительный просмотр
- Просмотр
- Посмотреть исходный текст
- Дочерние страницы
- Аннотации
- Вложения (3)
- История
Choose the export format from the list below:
- Другие форматы документов (1)
-
Export as HyperText Markup Language (HTML)
-
- Форматы документов Office (1)
-
Export as Portable Document Format (PDF) using Apache Formatting Objects Processor (FOP)
-
Вопросы, связанные с работой методов API:
Примечание: рекомендуется ознакомиться со стеком технологий, используемых системой Loymax.
Объекты, используемые во фреймворке .Net, переводятся из структуры данных в последовательность байтов или строку. В таком формате данные удобно передавать и хранить.
Процесс перевода состояния объекта в поток байтов с целью их сохранения в памяти ПК, в базе данных или файле называется сериализацией. Основное назначение сериализации — сохранение состояния объекта, чтобы в случае необходимости была возможность восстановить его.
Обратный перевод байтов в структуру данных называется десериализцией.Система Loymax для сериализации/десериализации использует сериализатор Newtonsoft.Json.JsonSerializer.
Рассмотрим процесс сериализации/десериализации на примере работы метода для получения списка брендов.
Все бренды в Системе созданы по одному шаблону (модели), то есть наследуются от одного типа данных.
Алгоритм получения информации о брендах через методы API работает следующим образом:
- Клиент отправляет запрос на получение списка брендов (GET: /v1.2/brands).
- Сервер обрабатывает запрос, формирует и отправляет SQL-запрос в базу данных на получение списка брендов.
- База данных в ответ на запрос сервера возвращает серверу список брендов, которые переводятся из потока байтов обратно в объект .Net.
- Сервер возвращает клиенту список брендов в формате JSON. Сериализатор Newtonsoft.Json.JsonSerializer преобразует объект .Net в формат JSON.
Например, в .NET есть типы Brand1 и BrandBase (Brand1 наследуется от BrandBase).
public class BrandBase
{
public string Name { get; set; }
public string Description { get; set; }
}
public class Brand1 : BrandBase
{
public string Code { get; set; }
}Newtonsoft JsonConvert добавляет свойство $type в JSON схему для типов во время сериализации и использует его при десериализации.
Таким образом, при сериализации экземпляра класса Brand1 будет создан объект JSON с вышеупомянутым свойством $type.
Brand1 является объектом, созданными по типу BrandBase. Так как сериализатор ожидает получить только объект типа BrandBase, а Brand1 распознает как отдельный тип, который наследуются от общего типа BrandBase, то он присваивает ему свойство $type, в котором указана модель, согласно которой был создан объект, чтобы при десериализации создать объект исходного типа.
В ответе на запрос для получения списка брендов, информация о Brand1 будет выглядеть следующим образом:
{
"$type": "Loymax.Api.Models.BrandInfo.Brand1, Loymax.Api",
"name": "Brand1",
"description": "Новый бренд",
"code": "7878b563333841d79a5e5d14fde29cbe"
}
Отредактировано 06/03/2024 11:21