Какие типы API есть (внутренний, публичный), в чем разница, для чего использовать, что использовать в первую очередь?
В Case.one есть два вида API — публичный и внутренний.
Мы разработали внутренний API специально для нужд пользовательского интерфейса web-приложения Case.one, поэтому его не рекомендуется использовать для других целей.
Публичный API мы разработали для внешних потребителей сервиса Case.one, таких как:
- Интеграции со сторонними системами
- Мобильные приложения
- Скрипты в сценариях автоматизации
Основные отличия внутреннего и публичного API обусловлены тем, что изменения внутреннего API синхронизированы с основным циклом разработки и изменениями вносимыми в пользовательский интерфейс — то есть публикуются синхронно с каждый новым релизом, и внутренний API всегда согласован с пользовательским интерфейсом.
Публичный же API предназначен специально для настройки интеграций и скриптов автоматизации.
Свойства внутреннего API:
- С каждым релизом публикуется новая версия внутреннего API
- Номер версии внутреннего API совпадает с номером релиза
- Гарантируется поддержка только текущей и предыдущей версии внутреннего API в основной части приложения, и только текущей версии API в админке — если вы работаете с внутренним API, вам необходимо проставить версионность и обновлять по мере обновлений Case.one
- Используемая версия внутреннего API указывается в параметрах запроса в URL запроса (например, https://yourinstance.case.one/swagger/index.html?urls.primaryName=v62)
- Если версия API не указана, то обращение идет к последней доступной версии API
Свойства публичного API:
- Новая версия публичного API публикуется, когда в публичном API появляются изменения, не обладающие обратной совместимостью с предыдущей версией API, т.е. в том случае, когда запрос к старой версии API не может быть обработан новой версией API
- Версии публичного API нумеруются последовательно (начиная с 1.0)
- Используемая версия публичного API указывается в сегменте URL запроса, обратиться к публичному API, не указав версию, невозможно (например, https://yourinstance.case.one/swagger/index.html?urls.primaryName=v3)
Во всех кейсах взаимодействия с API Case.one рекомендуется использовать публичный API.