00:00:00क्या होगा अगर आपका Postgres डेटाबेस ही API बन जाए और आपको कोई बैकएंड कोड न लिखना पड़े?
00:00:05हर बार जब आप API बनाते हैं, तो आप बार-बार वही बैकएंड कोड लिखते हैं। रूट्स, कंट्रोलर्स, वैलिडेशन, ऑथ, यह सब बस आपके
00:00:14डेटाबेस से बात करने के लिए। फिर आप एक कॉलम बदलते हैं और सब कुछ टूट जाता है। कोई कस्टम बैकएंड कोड नहीं। कोई कंट्रोलर नहीं। कोई ORM लेयर नहीं।
00:00:21PostgREST यही करता है। यह Supabase के पीछे का इंजन है। यह गंभीर प्रोडक्शन ट्रैफ़िक को संभालता है और बस कुछ ही मिनटों में
00:00:29मैं आपको दिखाने जा रहा हूँ कि कैसे।
00:00:31अब अगर आप API बनाते हैं, तो यह पूरे स्टैक में सबसे कष्टप्रद दर्द बिंदुओं पर प्रहार करता है।
00:00:40डुप्लिकेटेड लॉजिक। आप डेटाबेस में डेटा को परिभाषित करते हैं।
00:00:44फिर आप कहीं और एक्सेस रूल्स, बैकएंड कोड और वैलिडेशन को परिभाषित करते हैं।
00:00:49फिर हम कहीं और रिस्पॉन्स हैंडलिंग के लिए भी वही करते हैं। एक ही सिस्टम, कई लेयर्स, चीज़ों के टूटने की कई संभावनाएँ।
00:00:56PostgREST इन सबको खत्म करता है। GitHub पर इसके 26,000 से अधिक स्टार्स हैं और इसका उपयोग Supabase द्वारा प्रोडक्शन स्केल पर किया जाता है।
00:01:03यह आपके स्कीमा को कुछ ही मिनटों में प्रोडक्शन के लिए तैयार REST API में बदल देता है। कोई ORM नहीं, कोई कंट्रोलर नहीं।
00:01:10सिक्योरिटी डेटाबेस में ही रहती है, जिसका अर्थ है कम डुप्लिकेशन, कम मेंटेनेंस, और उन उबाऊ चीज़ों को जोड़ने में बहुत कम समय।
00:01:19मैं आपको दिखाता हूँ। अगर आप ऐसे कोडिंग टूल्स का आनंद लेते हैं जो आपके वर्कफ्लो को तेज़ करते हैं, तो सब्सक्राइब ज़रूर करें।
00:01:24हमारे वीडियो हर समय आते रहते हैं।
00:01:26ठीक है। अब चलिए वास्तव में इसे बनाते हैं। ठीक है, यहाँ सेटअप है। तीन कंटेनर।
00:01:32बस इतना ही। Postgres, PostgREST, और कुछ डॉक्स के लिए Swagger UI।
00:01:38यहाँ Docker Compose फ़ाइल है। यहाँ ज़्यादा कुछ नहीं हो रहा है। बस तीन सर्विसेज़ जिन्हें मैंने एक साथ जोड़ा है।
00:01:45मैं इसे हमारी भरोसेमंद कमांड Docker Compose के साथ शुरू करता हूँ। यह चलने लगेगा और मेरा काम हो गया।
00:01:51कोई डिपेंडेंसी इंस्टॉल नहीं करनी। कोई सर्वर सेटअप नहीं करना। अब, डेटाबेस को देखते हैं।
00:01:55मैं यहाँ यह डॉकर कमांड चलाने जा रहा हूँ और बस इतना ही। एक बहुत ही सरल todos टेबल। ID, title, completed, created, सभी बुनियादी चीज़ें।
00:02:04वास्तव में बस यही सब यहाँ हो रहा है। लेकिन यह, यह वह हिस्सा है जहाँ यह उपयोगी हो जाता है।
00:02:09रो लेवल सिक्योरिटी (RLS)। हम सीधे डेटाबेस के अंदर SQL में परिभाषित करते हैं कि कौन किस चीज़ को एक्सेस कर सकता है।
00:02:17हमारे सिस्टम में कहीं और कोई बैकएंड ऑथ लॉजिक नहीं बैठा है। यहाँ पॉलिसी है।
00:02:22मेरे पास anon के लिए फुल एक्सेस है, true के साथ check true का उपयोग करते हुए। तो फिलहाल, सब कुछ अनुमत है। अब यह देखें।
00:02:29मैं इस curl कमांड के साथ get todos हिट करने जा रहा हूँ और बस इतना ही। सीधे Postgres से पूरा JSON।
00:02:35कोई API कोड नहीं। अब इसी पर आगे बढ़ते हुए, मैं अब इसे फ़िल्टर करता हूँ। यह तुरंत काम करता है।
00:02:41अगर मैं इसे सॉर्ट करता हूँ, तो देखिए, यह हो गया। अब चलिए एक और रो बनाते हैं, JSON बॉडी के साथ एक पोस्ट रिक्वेस्ट भेजते हैं और हम कर चुके।
00:02:50और यह पहले से ही डेटाबेस में है। यहाँ कोई ORM लेयर तालमेल बिठाने की कोशिश नहीं कर रही है।
00:02:56और यहाँ वह हिस्सा है जो वास्तव में लोगों को प्रभावित करता है। Open API डॉक्स, ऑटो-जेनरेटेड Swagger UI। यह बस यहीं है।
00:03:04मैं इसे खोलता हूँ और हमें एक पूर्ण इंटरैक्टिव API मिलता है। आप सब कुछ एक्सप्लोर कर सकते हैं, एंडपॉइंट्स टेस्ट कर सकते हैं, स्कीमा देख सकते हैं।
00:03:11तो शून्य से, अब आपके पास पूर्ण CRUD, फ़िल्टरिंग, सॉर्टिंग, पेजिनेशन है। आपके पास RLS के माध्यम से बुनियादी ऑथ और डॉक्स हैं, वह भी एक मिनट से कम समय में।
00:03:21तो लोग इसका उपयोग क्यों करते हैं? खैर, अगर वह पर्याप्त नहीं था, तो इसलिए क्योंकि पारंपरिक बैकएंड काम में एक टैक्स होता है।
00:03:26और उस टैक्स का अधिकांश हिस्सा प्रोडक्ट का काम नहीं है। वास्तव में हम जो कर रहे हैं वह सब मेंटेनेंस का काम है, है ना?
00:03:33अगर आप सामान्य स्टैक के बारे में सोचते हैं, शायद वह express, Prisma, कंट्रोलर्स, सर्विसेज़, एक जगह वैलिडेशन है।
00:03:40फिर हमारे पास दूसरी जगह ऑथ है। आपका डेटाबेस लॉजिक पूरी तरह से कहीं और है।
00:03:45अब उसकी तुलना PostgREST से करें। आपका स्कीमा API को परिभाषित करता है। आपकी सुरक्षा RLS है।
00:03:52आपके संबंध पहले से ही डेटाबेस में मौजूद हैं। इसलिए आपके डेटा के चारों ओर एक ट्रांसलेशन लेयर बनाने के बजाय, हम सिर्फ डेटा को सही ढंग से पेश करते हैं।
00:04:02यह बहुत अलग है। अब इसकी तुलना एक कस्टम बैकएंड से करें। आपको सब कुछ खुद लिखना होगा।
00:04:07वह आपको लचीलापन देता है। हाँ, ज़रूर। लेकिन वह आपको मेंटेन करने के लिए बहुत अधिक कोड भी देता है।
00:04:13PostgREST सरल रहता है। REST प्लस Postgres। सुरक्षा डेटाबेस में है। यह मिडलवेयर या रूट हैंडलर में बिखरी हुई नहीं है।
00:04:23आपका मेंटेनेंस कम रहता है क्योंकि आपका API आपके स्कीमा को फॉलो करता है। इसलिए लोग इसे पसंद करते हैं।
00:04:28अब, निष्पक्ष होने के लिए, यहीं लोग मुसीबत में पड़ते हैं क्योंकि एक बार जब कुछ ऐसा साफ महसूस होने लगता है, तो लोग ऐसा व्यवहार करने लगते हैं जैसे यह सब कुछ हल कर देता है।
00:04:34यह सब कुछ हल नहीं करता है, है ना? अभी भी ऐसी चीज़ें हैं जिनका हमें ध्यान रखना होगा।
00:04:38इसमें कुछ ट्रेड-ऑफ़ होंगे और आपको इसे छूने से पहले पता होना चाहिए कि किन चीज़ों पर नज़र रखनी है।
00:04:43लोग यहाँ जो पसंद करते हैं वह, स्पष्ट है। इसके साथ बनाना तेज़ है। आप आइडिया से वर्किंग API तक बहुत तेज़ी से जा सकते हैं।
00:04:51और यह वास्तव में अच्छी तरह से स्केल भी करता है। इसके अलावा, Supabase इसे साबित करता है।
00:04:55वे इसका उपयोग कर रहे हैं। लेकिन यहाँ कमियाँ यह हैं कि भारी रो लेवल सिक्योरिटी का उपयोग डेटाबेस लोड को बढ़ाएगा।
00:05:02इसलिए आपको सावधानी से सोचना होगा कि आप इसे कैसे डिज़ाइन करते हैं। जटिल लॉजिक आपको बहुत सारे SQL फंक्शन्स या व्यूज़ की ओर धकेल सकता है।
00:05:10और कुछ लोग इसे पसंद करेंगे और कुछ लोग इससे नफरत करेंगे। तो क्या आपको इसका उपयोग करना चाहिए या इसे आज़माना चाहिए?
00:05:15हाँ, सही प्रोजेक्ट्स के लिए। अगर आप प्रोटोटाइप, MVP या Postgres के आसपास केंद्रित कुछ भी बना रहे हैं, तो ज़रूर, इसे एक बार आज़माएँ, है ना?
00:05:23आप तेज़ी से आगे बढ़ेंगे। आप कम कोड लिखेंगे और आपको नियमों को डेटाबेस में नीचे धकेल कर स्ट्रॉन्गर सिक्योरिटी डिफॉल्ट्स मिलेंगे।
00:05:32अब, यदि आपके ऐप में वास्तव में जटिल लॉजिक है, तो आप अभी भी ऊपर एक पतली बैकएंड लेयर चाह सकते हैं, कुछ छोटा, एज केसेस के लिए एक BFF लेयर।
00:05:40लेकिन तब भी, Postgres नीचे का अधिकांश भारी काम कर सकता है। तो मुख्य बात यह है: PostgREST आपको तेज़ी से शिप करने, बेहतर सुरक्षित करने और कम मेंटेन करने देता है।
00:05:50आपका डेटाबेस वास्तविक डेटा का स्रोत बन जाता है, और आपका API एक अलग सिस्टम बनने के बजाय उसी से निकल आता है।
00:05:58यदि आप इस तरह के कोडिंग टूल्स और टिप्स का आनंद लेते हैं, तो Better Stack चैनल को सब्सक्राइब ज़रूर करें। हम आपसे दूसरे वीडियो में मिलेंगे।