JSON и JSON Schema
JSON (JavaScript Object Notation) — это структурированный текстовый формат обмена данными. Легко читается людьми. Имеет открытый стандарт.
Где используется
JSON независим от языков программирования и используется повсеместно, например:
💩 при обмене данными через API. Например, мы можем как один из вариантов передавать body HTTP-запроса в формате JSON (но не обязательно только JSON!)
💩 при создании параметров конфигурации для систем и сервисов
💩 в NoSQL базах данных, например, в MongoDB
Синтаксис
Json-объект — это неупорядоченное множество пар вида {"ключ": "значение"}.
💩 Ключ – это название параметра, пишется в двойных кавычках
💩 Значение для ключа указывается после двоеточия
💩 Между парами ключ-значение ставится запятая. После последней пары запятая не ставится
💩 Писать ключи можно в любом порядке
Типы данных
💩 Строка –
💩 Число – целое или с запятой –
💩 boolean – true или false –
💩 null – пустое значение –
💩 Массив –
💩 Объект –
Классический JSON (по стандарту RFC 8259) не поддерживает комментарии. Однако существует расширение стандартного JSON – JSON5, в котором можно вставлять комментарии.
А где же тип “дата”? JSON не даёт строгих указаний, в каком формате передавать дату и время. Можно использовать unix-time или передавать дату в строке по ISO 8601, например,
JSON Schema
JSON Schema – это способ описания структуры и ограничений JSON-документов. Схема создана для описания JSON-данных, но и сама она при этом является JSON-объектом. С помощью ключевых слов в схеме создаются правила валидации структуры объекта и типов его полей.
В отличие от XML-схемы, которая имеет стандарт и строго диктует определение документа в рамках XML, JSON-схема более гибкая и простая.
Применение JSON Schema
1️⃣ Описание формата данных в API-контрактах, которое читается машиной и понятно человеку
2️⃣ Валидация данных в JSON-документах. Здесь имеется в виду не просто проверка на корректность формата, а проверка специфических требований и ограничений
3️⃣ Автоматическая генерация примеров запросов и ответов API: JSON Schema позволяет генерировать динамические данные, соответствующие схеме. Эти примеры ответов можно использовать для создания заглушек
4️⃣ Создание автоматической документации к API
5️⃣ Автоматическая генерация кода. На основе схемы можно создавать SDK для API на любой платформе
📄 Спецификации
1. RFC 8259 — про JSON
2. ISO 8601 — про формат дат
3. JSON Schema
4. JSON5
📎 Материалы по JSON
0. Пример JSON
1. Что такое JSON и как с ним работать
2. Хорошо написанная статья в англоязычной Википедии
3. Типичные ошибки в JSON
4. JSON онлайн редактор
5. JSON конвертер в YAML
6. XML конвертер в JSON
7. YAML конвертер в JSON, XML, CSV
📎 Материалы по JSON Schema
1. Объяснение JSON-схемы с примерами от ВК
2. JSON Schema. Быть или не быть?
3. Понимание JSON схемы
4. Пример JSON-схемы
5. Пример онлайн-валидатора JSON-схемы
6. Конвертер JSON-схемы на разные языки
⏯ Видео
1. JSON за 5 минут
2. Формат JSON. От основ к практике
3. Полный курс по JSON для начинающих
4. Валидация JSON в Postman
#проектирование #api
JSON (JavaScript Object Notation) — это структурированный текстовый формат обмена данными. Легко читается людьми. Имеет открытый стандарт.
Где используется
JSON независим от языков программирования и используется повсеместно, например:
Синтаксис
Json-объект — это неупорядоченное множество пар вида {"ключ": "значение"}.
Типы данных
"name": "Вася"
"years": 24
"resident": true
"children": null
"experience": [ "Повар", 2, "Аналитик", 1 ]
"experience": { "Повар": 2, "Аналитик": 1 }
Классический JSON (по стандарту RFC 8259) не поддерживает комментарии. Однако существует расширение стандартного JSON – JSON5, в котором можно вставлять комментарии.
А где же тип “дата”? JSON не даёт строгих указаний, в каком формате передавать дату и время. Можно использовать unix-time или передавать дату в строке по ISO 8601, например,
"2012-04-21T18:25:43-05:00"
.JSON Schema
JSON Schema – это способ описания структуры и ограничений JSON-документов. Схема создана для описания JSON-данных, но и сама она при этом является JSON-объектом. С помощью ключевых слов в схеме создаются правила валидации структуры объекта и типов его полей.
В отличие от XML-схемы, которая имеет стандарт и строго диктует определение документа в рамках XML, JSON-схема более гибкая и простая.
Применение JSON Schema
1️⃣ Описание формата данных в API-контрактах, которое читается машиной и понятно человеку
2️⃣ Валидация данных в JSON-документах. Здесь имеется в виду не просто проверка на корректность формата, а проверка специфических требований и ограничений
3️⃣ Автоматическая генерация примеров запросов и ответов API: JSON Schema позволяет генерировать динамические данные, соответствующие схеме. Эти примеры ответов можно использовать для создания заглушек
4️⃣ Создание автоматической документации к API
5️⃣ Автоматическая генерация кода. На основе схемы можно создавать SDK для API на любой платформе
1. RFC 8259 — про JSON
2. ISO 8601 — про формат дат
3. JSON Schema
4. JSON5
📎 Материалы по JSON
0. Пример JSON
1. Что такое JSON и как с ним работать
2. Хорошо написанная статья в англоязычной Википедии
3. Типичные ошибки в JSON
4. JSON онлайн редактор
5. JSON конвертер в YAML
6. XML конвертер в JSON
7. YAML конвертер в JSON, XML, CSV
📎 Материалы по JSON Schema
1. Объяснение JSON-схемы с примерами от ВК
2. JSON Schema. Быть или не быть?
3. Понимание JSON схемы
4. Пример JSON-схемы
5. Пример онлайн-валидатора JSON-схемы
6. Конвертер JSON-схемы на разные языки
1. JSON за 5 минут
2. Формат JSON. От основ к практике
3. Полный курс по JSON для начинающих
4. Валидация JSON в Postman
#проектирование #api