Архитектурен стил за API - как да направите избор

Толкова голям избор при изграждането на нов API. Какъв архитектурен стил да изберем за нашия готин нов API? Има ли най-добри практики по отношение на архитектурния стил за API?

Но първо, какво е архитектурен стил? Като цяло архитектурният стил е мащабна, предварително определена структура на решението. Има архитектурни стилове за почти всичко, например за изграждане на къщи, за изграждане на софтуер и по-специално за изграждане на API. Използването на архитектурен стил ни помага да проектираме решението по-бързо, отколкото да проектираме всичко отначало.

Архитектурните стилове предоставят предварително определени елементи на решение и по този начин са подобни на дизайнерските модели или шаблоните за дизайн. Докато моделите и шаблоните на дизайна често се използват за решаване на проблеми с местното внедряване, като повторение чрез списък, архитектурните стилове предлагат решение за по-голямо предизвикателство. Решението за архитектурен стил е мащабно и прониква в цялостното решение.

Изборът на архитектурни стилове трябва да бъде едно от първите решения при изграждането на нов API, тъй като това е решение, което е трудно да се промени по-късно.

  • REST API Style (Представителен държавен трансфер) с HATEOAS във всичките му „нива“, както е дефинирано в индекса на зрелостта на Ричардсън.
  • GraphQL API Style
  • RPC API Style (Отдалечено процедурно повикване)
  • SOAP API Style
  • gRPC API Style
  • Falcor API Style

API по принцип могат да бъдат реализирани с помощта на някой от тези архитектурни стилове. Как да разберем дали определен стил е подходящ за даден API? Полученият API излага много желани свойства.

Най-добри практики по отношение на архитектурния стил за API

Най-добра практика е да реализирате API, използвайки архитектурен стил REST. Това е и най-често срещаният стил. Ето защо на практика може да се предположи, че API-ите се реализират със стил REST. Искате ли да научите REST-Style за API дизайн? Вижте книгата за дизайн на RESTful API.

Първоначално публикуван в API-University.