Исходник
https://www.ca.com/content/dam/ca/us/files/ebook/api-strategy-and-architecture-a-coordinated-approach.pdf Что узнал?
Предлагают использовавть инструменты проектирования без написания кода изначально:
- apiary.io - инструмент, позволяет написать прототип без кода.
- RAML.org и SWAGGER.io - языки описания API, помогают пользователям использовать прототип API.
Товарищи делят архитектуры API на стили:
- Web Service (тунелирование) - транспортонезависим, много утилит, WSDL/SOAP/RPC, не годно для мобильных устройств, трудная разработка.
- Прагамтичный REST (URI) - веб-ориентирован для разработки интерфейсов интеграции, использует URI вместо WSDL, полагается на HTTP транспорт, часто назвают как "Web API", "" RESTful API", не полностью выполняют требования подхода REST, популярен из-за URI, пригоден для разработки веб и мобильных приложений, сейчас встречается в большинстве проектов, не является идеальным решением из-за доменоориентированности, ограничен 4 методами, структура URI не стандартна, не подходит для обмена большим числом мелких сообщений (IoT).
- Гипермедиа (настоящий REST) - основан на HTTP, URI; полностью выполняет принципы подхода REST хорошо масштабируется, хорошо споектированный API может позволить поддерживать новый приложения годами; мало инструментов для разработки; более медленная разработка по сравнению с 3, малоизвестна разработчикам.
- Событийный (Event-Driven, aka IoT) - транспортонезвисим, малая изибыточность, лучшая производительность при наличии большого количества мелких сообщений между бекэндом и фронтендом, хорош для игр, чатов и IoT, модель запрос-ответ делает разработку приложений сложенее для разработчиков.