April 25

Модель зрелости API Ричардсона

Концепция, которая показывает соответствие API принципам REST

Начало тут: https://t.me/business_ana_lis/906

Уровень 0

🔗 Одна ссылка на все ресурсы

💪 Глагол действия используется только один, чаще всего берут POST, потому что действия определяются в параметрах запроса

Пример:

{  "action": "activate", 
   "attributes": {
     "username": "admin",
     "email": "email@example.com",
     "password": "12345"
     }
}

Уровень 1

🔗 Отдельная ссылка на каждый ресурс

💪 Глагол действия используется только один, чаще всего берут POST, потому что действия определяются в параметрах запроса

Уровень 2

🔗 Отдельная ссылка на каждый ресурс

💪 Используются все глаголы действия

Уровень 3

🔗 Отдельная ссылка на каждый ресурс

💪 Используются все глаголы действия

➕ Добавляется управление содержанием ресурса: при каждом вызове в ответе сервер возвращает список доступных ресурсов и возможных для них действий. Такая концепция называется HATEOAS (Hypertext as the Engine of Application State)

Пример:

<appointment>
  <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/>
  <patient id = "jsmith"/>
  <link rel = "/linkrels/appointment/cancel"uri = "/slots/1234/appointment"/>
  <link rel = "/linkrels/appointment/addTest" uri = "/slots/1234/appointment/tests"/>
  <link rel = "self"        uri = "/slots/1234/appointment"/>
  <link rel = "/linkrels/appointment/changeTime" uri = "/doctors/mjones/slots?date=20100104@status=open"/>
  <link rel = "/linkrels/appointment/updateContactInfo" uri = "/patients/jsmith/contactInfo"/>
  <link rel = "/linkrels/help" uri = "/help/appointment"/>
</appointment>