đ Stateless REST āļේāļģුāļ¸් āļāļąිāļ¸ු: āļāļļේ API āļāļāļ§ āļිāˇිāˇāļ් āļ¸āļāļ āļිāļēාāļāļą්āļą āļļැāļģි āļāļēි? đ§ ❌
REST API āļැāļą āļāļෙāļą āļāļą්āļą āļ´āļ§āļą් āļāļą්āļąāļොāļ§ āļąිāļāļģāļ¸ āļ āˇāļą්āļąāļ§ āļŊැāļļෙāļą āˇāļ āļąāļēāļ් āļāļ¸āļēි stateless āļිāļēāļą āļāļ. đ āļāˇෙāļą්āļąේ āˇāļģāļŊāļēි āˇāļේ, āļąāļ¸ුāļ් āļāļ්āļāļ§āļ¸ āļ¸ේāļ āļāļ¸āļēි āļąāˇීāļą āˇෙāļļ් āļාāļ්āˇāļĢāļēේ āļ´āļ¯āļąāļ¸් āˇූ āˇැāļ¯āļāļ්āļ¸ architectural āļීāļģāļĢāļēāļ්. āļāļිāļą් āˇāļģāļŊāˇāļ¸ āļ¸ේāļ āļේāļģුāļ¸් āļāļ¸ු. đ
đ¤ "Stateless" āļිāļēāļą්āļąේ āļāļ්āļāļ§āļ¸ āļ¸ොāļāļ්āļ¯?
Stateless āļ´āļ¯්āļ°āļිāļēāļ āˇāļģ්āˇāļģ් đĨ️ āļāļ client āļේ āļ´ෙāļģ requests āļැāļą āļිāˇිāļ¸ āļ¯ෙāļēāļ් āļ¸āļāļ āļිāļēාāļāļą්āļąේ āļąැāˇැ. Client āļෙāļąෙāļුāļෙāļą් server āļāļāļ§ āļāļą āˇැāļ¸ request āļāļāļāļ¸, āļ request āļāļ āļේāļģුāļ¸් āļāļą්āļąāļ් process āļāļģāļą්āļąāļ් āļ āˇāˇ්āļē āˇāļ¸්āļ´ූāļģ්āļĢ āļොāļģāļුāļģු đĻ āļිāļļෙāļą්āļąāļ¸ āļāļą — server āļāļāļ§ "āļāļŊිāļą් āļ¸āļāļ āļිāļēෙāļą" āļිāˇිāļ¸ āļ¯ෙāļēāļ් āļąැāˇැ.
āļ¸ේāļ fast-food āļāˇුāļą්āļ§āļģāļēāļ āļāˇාāļģ order āļāļģāļąāˇා āˇāļේ āļ¯ෙāļēāļ්. đ āˇැāļ¸ āˇāļාāˇෙāļ¸ āļāļļ āļිāˇිāļą් āļāļļේ āˇāļ¸්āļ´ූāļģ්āļĢ order āļāļ āļąැāˇāļ āļිāļēāļą්āļą āļāļą — "āļļāļģ්āļāļģ් āļāļāļ්, ⎠ූāļĢු āļąෑ, āļ ීāˇ් āˇැāļŠිāļē, āļ¸āļ°්āļēāļ¸ āļ´්āļģāļ¸ාāļĢāļēේ āˇ්āļģāļēිāˇ්, āļෝāļŊා āļāļāļ්" āļිāļēāļŊා đđĨ¤. āļැāˇිāļēāļģ්āļ§ āļ¸āļāļ āļąැāˇැ āļāļļ āļ´āˇුāļිāļē āˇāļිāļēේ order āļ⎠ේ āļ¸ොāļāļ්āļ¯, āļ¸ිāļąිāļ්āļු āļ´āˇāļāļ§ āļāļŊිāļą් āˇුāļąāļ් āˇāļģි. āˇැāļ¸ order āļāļāļ්āļ¸ āļāļිāļąෙāļāļ§ āˇෙāļą් āˇෙāļŊා āļිāļēෙāļąāˇා. ✅
đ️ REST APIs āˇāļŊ āļ¸ේāļ āˇැāļŠ āļāļģāļą්āļąේ āļොāˇොāļ¸āļ¯?
Stateless REST API āļāļāļ:
- đ Client āļāļ authentication āˇිāˇ්āļāļģ (token āļāļāļ් āˇāļේ) āˇැāļ¸ request āļāļāļāļ¸ āļāļ්āļāļ¸ āļēāˇāļąāˇා.
- đ¨ āļ āˇāˇ්āļē parameters āˇāˇ context āˇිāļēāļŊ්āļŊ client āļāļāļ¸ request āļāļේ āļāļු⎠āļ් āļāļģāļąāˇා.
- đ️ Server āļāļ āļ request āļāļේ āļිāļēෙāļą āļ¯ේ āˇිāļāļģāļ් āļ´ාāˇිāļ ්āļ ි āļāļģāļŊා process āļāļģāļąāˇා — server side āļāļේ session data āļිāˇිāˇāļ් store āļāļģāļŊා āļąැāˇැ.
- đ¤ Server āļāļ response āļāļāļ් āļēāˇāļŊා, āļāļ§ āļ´āˇ්āˇේ āļ interaction āļāļ āļ āļ¸āļāļ āļāļģāļąāˇා.
āļāļ¯ාāˇāļģāļĢāļēāļ් āˇිāļ¯ිāˇāļ§, user details āļŊāļļාāļāļą්āļą API āļāļāļ් call āļāļģāļ¯්āļ¯ී:
GET /users/123
Authorization: Bearer <token> đServer āļāļ token āļāļ check āļāļģāļŊා, user 123 āļේ āˇිāˇ්āļāļģ āļෙāļąැāļŊ්āļŊා, response āļ¯ෙāļąāˇා. "āļāļŊිāļą් āļāˇුāļ¯ āļ¸ොāļąāˇāļ¯ āļāˇුāˇේ" āļිāļēāļą āļāļ track āļāļģāļŊා āļąැāˇැ. āˇැāļ¸ request āļāļāļ්āļ¸ āļ
āļŊුāļිāļą් āˇිāļąිāˇ්āļ āļē āļāļģāļąāˇා. đ
đ¯ Statelessness āˇැāļ¯āļāļ් āˇෙāļą්āļąේ āļāļēි?
1. đ Scalability (āļ´āļģිāļ¸ාāļĢāļē)
āļිāˇිāļ¸ server āļāļāļ session data store āļāļģāļŊා āļąැāļි āļąිāˇා, requests āļāļąෑāļ¸ server āļāļāļāļ§ cluster āļāļේ handle āļāļģāļą්āļą āļ´ු⎠ුāˇāļą්. Load balancers đ āˇāļŊāļ§ traffic āļāļ multiple machines āˇāļŊāļ§ āļąිāļ¯āˇāˇේ āļļෙāļ¯āļą්āļą āļ´ු⎠ුāˇāļą්, āļāˇුāļģු client āļāļ "āļ¸āļāļ āļිāļēාāļෙāļą" āļāļą්āļąāˇāļ¯ āļිāļēāļŊා āˇිāļāļą්āļąāˇāļ් āļ āˇāˇ්āļē āļąැāļුāˇ.
2. đ ️ Simplicity (āˇāļģāļŊāļ්āˇāļē)
Developers āļ§ server āļāļේ complex session storage, synchronization, expiration logic manage āļāļģāļą්āļą āļ āˇāˇ්āļē āļąැāˇැ. āļ āļŠු state = āļ āļŠු bugs đ āˇāˇ āļ´āˇāˇු debugging.
3. đ Reliability (āˇිāˇ්āˇāˇāļąීāļēāļ්āˇāļē)
āļāļ server āļāļāļ් crash đĨ āˇුāļąොāļ්, āļ⎠server āļāļāļāļ§ āˇāˇාāļ¸ āļāļē āļˇාāļģāļāļą්āļą āļ´ු⎠ුāˇāļą් — āļ¸ොāļāļ¯ āļිāˇිāļ¸ server āļāļāļ unique, replace āļāļģāļą්āļą āļļැāļģි session data āļąැāļි āļąිāˇා. āļ¸ේāļෙāļą් āļ´āļ¯්āļ°āļි āˇāļŠාāļ් fault-tolerant āˇෙāļąāˇා.
4. đ Better Caching
Requests self-contained āˇāˇ predictable āļąිāˇා, responses āˇāļŠාāļ් effectively cache đ️ āļāļģāļą්āļą āļ´ු⎠ුāˇāļą්, repeated requests āˇāļŊ performance āļāļ āˇැāļŠි āļāļģāļāļą්āļą.
⚖️ āļෙāˇිāļē āļēුāļු āļ¸ිāļŊ
Statelessness āļąොāļ¸ිāļŊේ āļŊැāļļෙāļą්āļąේ āļąැāˇැ. đ¸ āˇැāļ¸ request āļāļāļ්āļ¸ āˇāļ¸්āļ´ූāļģ්āļĢ context āļāļāļ් āļģැāļෙāļą āļēා āļēුāļු āļąිāˇා, payloads āļ§ිāļāļ් āˇිāˇාāļŊ đĻ➕ āˇෙāļą්āļą āļ´ු⎠ුāˇāļą්, āˇāˇ clients (mobile apps đą āˇෝ browsers đ āˇāļේ) tokens, session-like data, state manage āļāļģāļැāļąීāļ¸ේ āˇāļāļීāļ¸ āˇැāļŠිāļ´ුāļģ āļˇාāļģāļāļą්āļąāˇා (āļļොāˇෝāˇිāļ§ cookies, local storage, āˇෝ JWTs āˇāļģāˇා).
đ§Š āˇැāļļෑ āļŊෝāļāļēේ āļāļ´āļ¸ාāˇāļ්
āˇෝāļ§āļŊ් receptionist đ¨ āļෙāļąෙāļ් amnesia āļිāļēෙāļą āļෙāļąෙāļ් āļිāļēāļŊා āˇිāļāļą්āļą, āļāļēාāļ§ front desk āļāļෙāļą් āļිāļēාāļ¸ āˇැāļ¸ guest āļෙāļąෙāļ්āļ¸ āļ āļ¸āļāļ āˇෙāļąāˇා. āˇැāļ¸ āˇāļාāˇෙāļ¸ āļāļļ ⎠āļāļ§ āļāļąāļොāļ§, āļāļļේ room key đ āˇāˇ ID đĒĒ āļąැāˇāļ āļ´ෙāļą්āˇāļą්āļą āļāļą. āļāļģāļ¯āļģāļēāļ්āļ¯? āļ§ිāļāļ් āˇෙāļą්āļą āļ´ු⎠ුāˇāļą්. āļąāļ¸ුāļ් āļāļෙāļą් āļ āļ¯āˇāˇ් āˇෙāļą්āļąේ āļāļąෑāļ¸ shift āļāļāļ āļāļąෑāļ¸ receptionist āļෙāļąෙāļුāļ§ āļāļļāļ§ āļ්āˇāļĢිāļ⎠āļāļ¯āˇ් āļāļģāļą්āļą āļ´ු⎠ුāˇāļą් āļිāļēāļŊා, āļāļļේ history āļāļ "catch up" āļāļģāļāļą්āļą āļ āˇāˇ්āļē āļąැāļුāˇ. āļāļ āļāļ¸āļēි statelessness āˇāļŊ āļļāļŊāļē. đĒ
✅ āļąිāļāļ¸āļąāļē
Stateless REST design āļිāļēāļą්āļąේ scalable, reliable, āˇāļģāļŊ web services āˇāļ¯āļą්āļą āļ´āļ¯āļąāļ¸් đ§ą āˇුāļąු āļ¯ෙāļēāļ්. āļ¸ේāļෙāļą් client āļāļāļ§ āˇāļŠාāļ් āˇāļāļීāļ¸් āļ´āˇāļģāļ¯්āļ¯ී, scalability đ, fault tolerance đĄ️, simplicity đ¯ āˇāļŊ āļŊැāļļෙāļą āļ´්āļģāļිāļŊාāļˇ āļąිāˇා āļąāˇීāļą APIs āˇāļŗāˇා āļ āļāļē āļāļģāļą approach āļāļ āļ¸ේāļāļēි — āļāļļේ āļ´්āļģිāļēāļāļ¸ mobile apps đą āˇිāļ§ āˇිāˇාāļŊ cloud platforms ☁️ āļ¯āļ්āˇා āˇැāļ¸ āļ¯ෙāļēāļ්āļ¸ āļļāļŊāļāļą්āˇāļą්āļąේ āļ¸ේāļෙāļą්.
āļ⎠āļ āˇāļාāˇේ āļāļļ API request āļāļāļ් āļēāˇāļąāļොāļ§, āļ¸āļāļ āļිāļēාāļāļą්āļą: server āļāļāļ§ āļāļļ āļැāļą āļිāˇිāļ¸ āļ¸āļāļāļēāļ් āļąැāˇැ. āˇැāļ¸ request āļāļāļ්āļ¸ āļ āļŊුāļ් āˇāļŗුāļąාāļැāļąීāļ¸āļ්. đđ

Comments
Post a Comment