REST hutumia HTTP methods za kawaida kama vitenzi vinavyotenda kwenye rasilimali. Uoanishaji wa kawaida na CRUD (Create, Read, Update, Delete) ni:
REST hutumia HTTP methods za kawaida kama vitenzi vinavyotenda kwenye rasilimali. Uoanishaji wa kawaida na CRUD (Create, Read, Update, Delete) ni:
| CRUD | Method | Matumizi ya kawaida |
|---|
| Create | POST | Ongeza rasilimali mpya kwenye collection |
| Read | GET | Leta rasilimali au orodha |
| Update (kamili) | PUT | Badilisha rasilimali kabisa |
| Update (sehemu) | PATCH | Rekebisha baadhi ya fields |
| Delete | DELETE | Ondoa rasilimali |
POST /users HTTP/1.1
Content-Type: application/json
{ "name": "Ann", "email": "[email protected]" }
HTTP/1.1 201 Created
Location: /users/42
{ "id": 42, "name": "Ann", "email": "[email protected]" }
PUT /users/42 hutuma representation nzima na kuibadilisha; PATCH /users/42 hutuma fields za kubadilisha pekee (mfano { "email": "[email protected]" }).
Hizi ni sifa mbili tofauti:
GET, HEAD, OPTIONS ni safe.GET, PUT, DELETE, HEAD ni idempotent.Method Safe? Idempotent?
GET yes yes
HEAD yes yes
PUT no yes (replacing with the same body twice = same result)
DELETE no yes (deleting twice = still deleted)
PATCH no no* (depends on the patch; not guaranteed)
POST no no (posting twice usually creates two resources)
Wahoji huuliza hili kuona kama unaelewa semantiki za HTTP vya kutosha kujenga APIs za kutegemewa. Tofauti ya safe/idempotent si ya kinadharia tu: huamua moja kwa moja kile ambacho clients, proxies, na CDNs zinaruhusiwa kufanya. Methods safe zinaweza ku-cache na ku-prefetch kwa uhuru; methods idempotent zinaweza kurudiwa kiotomatiki (retried) baada ya network timeout bila hatari ya kurudufu side effects — ndiyo sababu client inaweza kurudia PUT au DELETE kwa usalama lakini lazima iwe makini kurudia POST (inaweza kuunda orders mbili). Kosa la kawaida ni kutumia GET kuchochea side effects (mfano GET /users/42/delete), jambo linaloharibu caching na kuruhusu crawlers kubadilisha data kwa bahati mbaya. Kuchagua method sahihi — na kuheshimu mkataba wake wa safety na idempotency — ndiko kunakofanya API itabirike na iwe salama kujenga tooling kuizunguka.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia