# Интеграции

## Вопросы на которые ответим:

* Какие форматы данных используются для передачи данных?
  * Что такое JSON? Для чего используется?
  * Что такое XML и что в нем содержится?
  * Чем отличаются форматы XML и JSON?
  * (\*) Что такое XSD?
  * Что такое JSON схема и для чего она нужна?
* Какие виды и способы интеграций систем вы знаете?
* Что такое синхронные и асинхронные вызовы? Чем отличаются синхронное и асинхронное взаимодействия?
* Что такое HTTP?
  * Какие основные HTTP методы знаете?
  * Расскажите про HTTP сообщения. Какую структуру имеет запрос? Какую структуру имеет ответ? Какие коды состояния (status code) знаете и что они означают?
  * Что знаете про концепцию CRUD?
* Что такое API?
* Какие виды API бывают?
* Что такое REST API?
  * Проектировали ли вы API? Каким образом описывали спецификации?
  * Какие методы REST вы знаете?
  * Чем POST отличается от GET? Чем отличается POST от PUT?
  * (\*) Что такое идемпотентность?
  * (\*) Что содержит HEADER в ответе REST?
  * (\*) В каких местах (четырех) мы можем передать атрибуты в запросе? (Path, Body, Query, Header).
  * (\*) Чем отличается ошибка 200 от 201?
  * (\*\*) Напишите пример REST API для книжной библиотеки (напишите методы, эндпоинты и пример JSON)
  * Тестировали ли вы сами API? Какое ПО использовали?
* Чем REST отличается от SOAP?
* (\*) Что такое WSDL?
* Что такое асинхронное взаимодействие?
  * Что такое брокер сообщений?
  * Для чего нужны massages broker?
  * Что такое топик? Что такое партиция?
  * (\*) Что такое гарантированная доставка сообщений и какими механизмами ее можно обеспечить?
  * (\*) Отличия RabbitMQ и Kafka
