Sobes.tech
Senior

Шумо кадом намудҳои API-и вебро медонед? Чӣ гуна REST аз RPC дар асоси чӣ фарқ мекунад?

sobes.tech AI

Ҷавоб аз AI

API-ҳои веб дар намудҳои гуногун мавҷуданд, ки асосӣ онҳо:

  • REST (Representational State Transfer) — услуби меъморӣ, ки усулҳои HTTP (GET, POST, PUT, DELETE) барои кор бо захираҳо истифода мебарад, ки тавассути URI муайян карда мешаванд. REST ба захираҳо ва ҳолатҳои онҳо тамаркуз мекунад.
  • RPC (Remote Procedure Call) — фармони рафтори радаро ё функсияҳои дур, ки дар он муштарӣ усулҳои серверро гӯё маҳаллӣ истифода мебарад. Одатан, номҳои усулҳо ва параметрҳо интиқол дода мешаванд.
  • GraphQL — забони дархост, ки ба муштарӣ имкон медиҳад, ки танҳо он маълумотҳоро талаб кунад, ки лозим аст.

Фарқиятҳои байни REST ва RPC:

  • REST бо захираҳо ва ҳолатҳои онҳо кор мекунад, на бо фармонҳои функсионалӣ.
  • Дар REST, амалиётҳо бо усулҳои HTTP стандартӣ шудаанд, дар RPC — усулҳои мушаххас бо номҳо даъват мешаванд.
  • REST бештар ба сохтор ва намоиши маълумот тамаркуз мекунад, RPC — ба амалҳо.

Масалан:

Пурсиши REST барои гирифтани корбар:

GET /users/123

Пурсиши RPC барои гирифтани корбар:

POST /rpc
{
  "method": "GetUser",
  "params": { "id": 123 }
}

Бинобар ин, REST бештар баёнӣ ва нигаронии ба захираҳо аст, дар ҳоле ки RPC ба даъвати равандиҳо.