API и форматы обмена данными

Большинство современных информационных технологий связаны с Интернетом и передачей данных. Кроме этого, часто требуется передать информацию из одной системы в другую и, после обработки, получить какой-то ответ обратно в первую систему. Для этого придумали такой механизм как API (Application Programming Interface). По сути это описание правил взаимодействия с определенным программным продуктом, которые включают описание функций и форматов входных данных, по сути параметров запуска этих функций.

Форматы данных

Самый простой формат данных, который используется в интернете – это строка. При помощи строк передаются не только текстовые значения, но и числа. Но обычно одного значения не хватает и тут на помощь приходят такие “страшные” для неподготовленного человека аббревиатуры JSON и XML. А это всего лишь самые распространенные форматы представления данных для передачи между ИТ-системами в Интернете. Давайте на примере разберемся, что это за звери такие и как их “правильно готовить”.

Пример модели данных

Опишем гусеничный экскаватор CAT 320 в веб-совместимых форматах. Ниже несколько характеристик, которые описывают экскаватор (с переводом на английский язык в скобках):

  • Название (name) – “CAT 320”
  • Наименование двигателя (engine name) – “Cat C6.4 Acert”
  • Тип двигателя (engine type) – “Дизельный”
  • Мощность двигателя (engine power) – 140 л.с.
  • Объем двигателя (engine capacity) – 6.4 л.
  • Глубина рытья (digging depth) – 7.58 м.
  • Скорость движения (speed) – 5.5 км./ч.
  • Ширина ковша (bucket width) – 1 м.

JSON

{

  “name”: “CAT 320”,

  “engine”:  {

    “name”:”Cat C6.4 Acert”,

    “type”: “diesel”,

    “power”: 140,

    “capacity”: 6.4  

  },

  “digging depth”: 7.58,

  “speed”: 5.5,

  “bucket width”: 1

}

XML

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<root>

  <name>CAT 320</name>

  <engine>

    <name>Cat C6.4 Acert</name>

    <type>diesel</type>

    <power>140</power>

    <capacity>6.4</capacity>

  </engine>

  <speed>5.5</speed>

  <digging_depth>7.58</digging_depth>

  <bucket_width>1</bucket_width>

</root>

Updated on 07.12.2023