नमस्ते! मैं इस समय अपना graduation project (और नौकरी...) तैयार कर रहा एक undergraduate student हूँ.
Flask से REST API सर्वर लिखते समय मुझे लगा कि ऐसा कोई टेम्पलेट हो तो अच्छा होगा जिसमें कई प्रोजेक्ट्स में आम तौर पर शामिल होने वाले फीचर्स पहले से हों, इसलिए मैंने इससे संबंधित एक प्रोजेक्ट बनाया.
फ़िलहाल इसमें नीचे दिए गए फीचर्स हैं.
JWT साइनअप, लॉगिन और authentication (Refresh, Access token authentication)
......- Flask-Admin authentication (Admin token cookie का ऑटो-इश्यू और authentication)
......- मैनुअल token invalidation (किसी खास logged-in user के token को invalid करना)
......- ईमेल address verification और ईमेल का उपयोग करके password reset (email token)
Python के docstring और decorator के माध्यम से फीचर्स का उपयोग
......- login required और login recommended routes की परिभाषा
......- request parameters की परिभाषा और constraints (Required/Optional field management)
............- Header/Body/Query input validation
......- route description / request parameters / उस route पर संभव responses का documentation
documentation export
......- OpenAPI 3.0 YAML दस्तावेज़ के रूप में export
......- ER Diagram generate करने की सुविधा (.dot output)
इनमें से login (JWT authentication) और OpenAPI 3 documentation generation फीचर्स मैंने PyJWT और apispec का उपयोग करके सीधे खुद लिखे हैं.
OpenAPI 3 documentation generation के मामले में Flask-RESTful और Flask-RESTplus unmaintained स्थिति में थे, और Flask-RESTX मेरी पसंद के usage pattern जैसा नहीं था.
इसके अलावा, login या authentication के मामले में Flask-Login session-based है और मुझे Flask-JWT-Extended के बारे में पता ही नहीं था (...), इसलिए मैंने इसे खुद ही लिख दिया.
मैं आखिरकार एक undergraduate student हूँ, और इसे जल्दी में बनाया गया है, इसलिए comments भी कम हैं और code भी बहुत साफ़ नहीं है. फिर भी, अगर आप इसे इस बात के PoC के रूप में देखें कि इस तरह API define की जा सकती है, तो मैं आभारी रहूँगा!
(असल में मैंने इसे थोड़ी देर पहले एक बार पोस्ट किया था, लेकिन फीचर वाले हिस्से की सारी indentation spaces गायब हो गई थीं (...), इसलिए उसे हटाकर फिर से पोस्ट कर रहा हूँ. कृपया समझें!)
1 टिप्पणियां
और आप अभी undergraduate student हैं, यह वाकई शानदार है। आपको मेरी शुभकामनाएँ!!