"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > रेस्टफुल रूटिंग - एक फ्लास्क एपीआई उदाहरण

रेस्टफुल रूटिंग - एक फ्लास्क एपीआई उदाहरण

2024-11-08 को प्रकाशित
ब्राउज़ करें:517

Restful Routing - A Flask API Example

रेस्टफुल रूटिंग सभी विभिन्न अनुप्रयोगों के लिए रूटिंग को सुसंगत बनाने का प्रयास है। REST प्रतिनिधि राज्य स्थानांतरण है। यह HTTP का उपयोग सुसंगत, मानव-पठनीय, मशीन-पठनीय तरीके से करता है।

मानक हैं GET, POST, PATCH, PUT, और DELETE।

नीचे फ्लास्क एपीआई डेटाबेस में सामने से/तक जानकारी प्राप्त करने/देने और आवश्यक कार्रवाई करने के लिए कुछ आरामदेह मार्गों का उदाहरण दिया जाएगा।

फ्लास्क का उपयोग करके सर्वर साइड में उपयोगकर्ताओं के लिए GET का एक उदाहरण नीचे दिए गए कोड का उपयोग कर रहा है।

सबसे पहले आपको इन वस्तुओं को भी आयात करना होगा। डीबी आयात का उपयोग बाद में DELETE उदाहरण के लिए किया जाएगा।

from flask import request (*Used for POST and PATCH*)
from config import db, api, app 

from flask_restful import Resource
from models.user import User

आयात को कार्यान्वित करने के लिए आपकी कॉन्फ़िगरेशन फ़ाइल नीचे की तरह सेट की जानी चाहिए।

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)

उपयोगकर्ता रूट में GET कोड:

 class UsersResource(Resource):
     def get(self):
        users = [user.to_dict() for user in User.query.all()]
        return users, 200

 api.add_resource(UsersResource, "/api/users", endpoint="users")

इस कोड को तोड़ने के लिए।

आपको उपयोगकर्ता संसाधन के लिए एक वर्ग बनाना होगा और संसाधन को एक तर्क के रूप में रखना होगा।

इसके बाद प्राप्त करने के लिए एक फ़ंक्शन बनाएं। फ़ंक्शन उपयोगकर्ता तालिका को क्वेरी करेगा और फिर सभी उपयोगकर्ताओं की एक सूची बनाएगा जो उन्हें स्थानांतरण के लिए शब्दकोशों में परिवर्तित करेगा ताकि वे वेबपेज पर JSON के रूप में दिखाई दे सकें। फिर आप सूची के साथ-साथ 200 का स्टेटस कोड भी लौटा देते हैं कि अनुरोध सफल हो गया।

अंत में आपको संसाधन बनाने की आवश्यकता होगी। आप जिस संसाधन का उपयोग कर रहे हैं उसे नाम दें, साथ ही पथ और समापन बिंदु को भी नाम दें। /api को पथ के सामने जोड़ा जाता है ताकि होस्टिंग वेबसाइट फ्रंट और बैकएंड मार्ग से पहचान सके।

DELETE के लिए आपको एकल उपयोगकर्ता डिलीट के लिए एक अन्य संसाधन बनाना होगा। नीचे दिया गया कोड देखें:

 class UserResource(Resource):
     def delete(self, id):
         user= User.query.get(id)
         db.session.delete(user)
         db.session.commit()
         return {}, 204

 api.add_resource(UserResource, "/api/user/", 
 endpoint="user")

डिलीट में क्या हो रहा है जो पाने से अलग है, इसे और समझाने के लिए कुछ चीजें हैं। सबसे पहले यह केवल एक उपयोगकर्ता को हटा रहा है इसलिए आपको एक नया संसाधन बनाने की आवश्यकता होगी। इसे समान रूप से स्थापित किया गया है लेकिन बहुवचन में नहीं।

फिर आप डिलीट फ़ंक्शन बनाएं। इसमें दो तर्कों की आवश्यकता होगी क्योंकि किस उपयोगकर्ता को हटाना है यह निर्धारित करने के लिए आपको फ्रंट एंड से भेजी गई आईडी को पास करना होगा। फिर आप डेटाबेस को अपडेट करने के लिए db सेशन डिलीट और कमिट का उपयोग करेंगे। उसके बाद आप एक खाली प्रतिक्रिया लौटाते हैं क्योंकि वापस भेजने के लिए कुछ भी नहीं है और हटाने की स्थिति (204) है।

अंत में आपको संसाधन बनाने की आवश्यकता है। इस बार UserResource का उपयोग कर रहे हैं। पथ एकवचन होने के लिए अलग होगा और इसमें वह आईडी होगी जो सामने के अंत में पारित की गई थी और समापन बिंदु भी एकवचन है।

रेस्टफुल रूटिंग इसे ऐसा बनाती है कि विभिन्न अनुप्रयोगों के बीच स्विच करते समय एक मानक होता है जिसका पालन हर कोई बैकएंड रूटिंग के लिए कर सकता है और मानकीकृत पथों को जान सकता है। इसके अतिरिक्त यह पथों को साफ़ और पढ़ने में आसान बनाता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/spencer_adler_880da14d230/restful-routing-a-flask-api-example-5cpb?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3