# REST क्या है? — REST API Design: Resources, Status Codes और Security

Source: https://www.skillbyai.com/hi/restapi/api-rest-intro

> जानें कि REST क्या है, उसकी मुख्य constraints क्या हैं और अधिकांश असली APIs उसे अच्छे defaults के रूप में क्यों अपनाते हैं।

## रिप्रेज़ेंटेशनल स्टेट ट्रांसफ़र

REST कोई प्रोटोकॉल या स्पेक नहीं है — यह नेटवर्क्ड API बनाने की एक **आर्किटेक्चरल शैली** है, आमतौर पर HTTP पर। एक सर्वर **रिसोर्स** (यूज़र, ऑर्डर, प्रोडक्ट) उजागर करता है, और क्लाइंट उन्हें ऑपरेशन के एक छोटे, समान सेट के ज़रिए बदलते हैं।

## मार्गदर्शक सिद्धांत

**क्लाइंट-सर्वर**: UI और स्टोरेज अलग-अलग विकसित होते हैं। **स्टेटलेस**: हर रिक्वेस्ट अपनी ज़रूरत का पूरा संदर्भ साथ लाता है। **कैश-योग्य**: रिस्पॉन्स बताते हैं कि उन्हें कैश किया जा सकता है या नहीं। **समान इंटरफ़ेस**: रिसोर्स को एक सुसंगत तरीके से एड्रेस और बदला जाता है। **लेयर्ड सिस्टम**: क्लाइंट को पता नहीं चलता कि वह ओरिजिन से बात कर रहा है या प्रॉक्सी से।

## एक रेस्तराँ का मेन्यू

रिसोर्स को मेन्यू आइटम और HTTP मेथड को उन पर काम करने के तरीकों की तरह सोचें: आप नई डिश *ऑर्डर* करते हैं (POST), अपना ऑर्डर *देखते* हैं (GET), उसे *बदलते* हैं (PUT/PATCH), या *रद्द* करते हैं (DELETE)। मेन्यू (URI) वही रहता है; जो बदलता है वह है इस्तेमाल की गई क्रिया।

## अधिकांश API "RESTish" होते हैं

बहुत कम असली API हर REST बाधा को सख़्ती से पूरा करते हैं (जैसे HATEOAS को कम ही लागू किया जाता है)। REST को अच्छे डिफ़ॉल्ट का एक सेट मानें, पास करने वाली चेकलिस्ट नहीं।
