API designing: How to Design Best APIs | Best Practices | #api #backenddevelopment
Summary
TLDRThe video script discusses the importance of API design and trust in backend development. It narrates a personal story of an API developer who faced a DDoS attack due to poor design, highlighting the need for security, rate limiting, and proper planning. The speaker emphasizes best practices in API design, such as structuring endpoints logically, implementing pagination and filtering for large datasets, and ensuring API security with techniques like rate limiting and CORS. The script also touches on the significance of using caching mechanisms like Redis for performance and the need for versioning APIs to maintain compatibility for existing users while allowing updates.
Takeaways
- 😀 API Designing is crucial and often overlooked, especially for backend developers.
- 🔒 Security is a paramount aspect of API designing, which should be considered from the start to prevent issues like DDoS attacks.
- 📈 The importance of focusing on API designing within startups cannot be overstated to ensure scalability and reliability.
- 📚 Structuring and endpoints are fundamental in API designing, dictating how data is organized and accessed.
- 🔍 Functionality of endpoints should be clearly defined, ensuring that each endpoint serves a specific purpose and returns the expected response.
- 🚀 Optimizing API performance and security involves implementing best practices such as rate limiting and using security tools like CORS.
- 🔗 Versioning is essential in API management, allowing for backward compatibility and smooth transitions between different API versions.
- 🗂️ Pagination and filtering are vital for handling large datasets, enhancing user experience by managing data retrieval efficiently.
- 🛡️ Authentication and authorization are key security techniques in API designing, ensuring that only authorized users can access specific functionalities.
- 💡 Caching mechanisms like Redis can significantly improve API response times and reduce server load, providing a faster user experience.
- ⚖️ Horizontal and vertical scaling are strategies for maintaining API availability and performance as user demand increases.
Q & A
What is the main topic of the video script?
-The main topic of the video script is API design, emphasizing its importance and discussing aspects such as security, rate limiting, and best practices for creating production-grade APIs.
Why is API design considered so important according to the script?
-API design is considered important because it impacts the security, performance, and scalability of applications that rely on the API. Poorly designed APIs can lead to issues like crashes and security vulnerabilities, affecting both the API provider and its users.
What is the story shared in the script to highlight the importance of API design?
-The story shared is about the speaker's personal experience with selling APIs on a platform called RapidAPI. The speaker's API was hit by a DDoS attack due to poor rate limiting, which led to the API crashing and highlighting the significance of proper API design and security measures.
What is the role of rate limiting in API design as discussed in the script?
-Rate limiting is a security measure used in API design to control the number of requests a user can send to an API within a certain time frame. It helps prevent abuse and DDoS attacks, ensuring the stability and availability of the API.
What are some best practices mentioned in the script for designing good APIs?
-Some best practices mentioned include structuring endpoints logically, implementing functionality clearly, using meaningful endpoint names, and considering security measures such as rate limiting, authentication, and authorization.
How does the script suggest handling large amounts of data in API responses?
-The script suggests implementing pagination and filtering to handle large amounts of data. Pagination helps in breaking down the data into manageable chunks, while filtering allows users to retrieve specific subsets of data based on certain criteria.
What is the significance of endpoint structure in API design?
-Endpoint structure is significant in API design as it helps in logically organizing the API's functionality. It should be clear, consistent, and follow a logical pattern that makes it easy for developers to understand and interact with the API.
What is the purpose of versioning in API design as discussed in the script?
-Versioning in API design allows developers to make changes to the API without affecting existing users. It ensures compatibility and allows both old and new users to use the API according to their needs without disruption.
What are some security techniques mentioned in the script for securing APIs?
-Some security techniques mentioned include rate limiting, CORS (Cross-Origin Resource Sharing), using authentication and authorization mechanisms, and possibly utilizing in-memory databases like Redis for caching to improve performance and security.
How does the script discuss the use of in-memory databases like Redis in API design?
-The script discusses the use of in-memory databases like Redis for caching frequently accessed data. This can significantly improve response times and handle a high volume of requests, providing a faster and more efficient API experience.
What is the importance of scalability in API design as per the script?
-Scalability in API design is important to ensure that the API can handle an increasing number of users and requests. It discusses both horizontal scaling (adding more servers) and vertical scaling (upgrading server capacity) as methods to achieve scalability.
Outlines
😀 Introduction to API Designing and Its Importance
The speaker begins by introducing the topic of API designing, emphasizing its significance, particularly for back-end developers. They discuss why it's crucial to focus on API design from the start of a project. The speaker shares a personal story about their experience with API development, highlighting the importance of considering security, rate limiting, and other factors to prevent issues like the one they faced with a DDoS attack on their API. The narrative serves as a cautionary tale, illustrating the potential consequences of not prioritizing API design.
🔍 Key Considerations in API Design
This paragraph delves into the specifics of API design, focusing on the structure and functionality of endpoints. The speaker explains the importance of organizing endpoints logically, such as grouping user-related functions under a 'users' endpoint. They also discuss the need for clear functionality in each endpoint, using examples like a 'get request' to fetch user orders. The speaker stresses the importance of using meaningful endpoint names and methods that accurately reflect their purpose, avoiding confusion and improving maintainability.
🚀 Optimization, Security, and Best Practices
The speaker discusses optimization and security as critical aspects of API design. They highlight the importance of implementing good practices such as pagination and filtering to handle large datasets efficiently. Pagination helps in managing the load by limiting the number of results returned at a time, while filtering allows users to narrow down results based on specific criteria. The speaker also emphasizes the significance of security measures like rate limiting to prevent DDoS attacks and the use of tools like CORS to control access to the API.
🔒 Advanced Security Techniques and Caching
This paragraph focuses on advanced security techniques and the use of caching to improve API performance. The speaker talks about using authentication and authorization to secure APIs, mentioning the use of tokens for access control. They also discuss the benefits of using in-memory databases like Redis for caching, which can significantly reduce response times. The speaker explains how caching can be used to store frequently accessed data, thereby reducing the load on the main database and improving the overall performance of the API.
🌐 Scalability and Versioning in API Design
The speaker addresses the need for scalability in API design, explaining the difference between horizontal and vertical scaling. Horizontal scaling involves adding more servers to handle increased load, while vertical scaling involves upgrading the existing server's capabilities. The speaker also discusses the importance of versioning in API design, highlighting how it allows for the introduction of new features without disrupting existing users. They emphasize the need to maintain compatibility between different versions of an API to ensure a smooth transition for users.
📢 Conclusion and Call to Action
In the concluding paragraph, the speaker summarizes the importance of API design and encourages the audience to consider the discussed points when creating or updating their APIs. They reiterate the significance of security, scalability, and versioning in ensuring a robust and user-friendly API. The speaker ends with a call to action, inviting the audience to subscribe to the channel for more informative content on API development and related topics.
Mindmap
Keywords
💡API Designing
💡Rate Limiting
💡Security
💡Optimization
💡Pagination
💡Filtering
💡Horizontal Scaling
💡Vertical Scaling
💡Availability
💡Versioning
💡Caching
Highlights
Importance of API design and trust in backend development.
Why spending time on API design is crucial for backend developers.
The story of the speaker's personal experience with API selling on RapidAPI.
The significance of handling a DDoS attack on an API and its impact.
The consequences of poor API design leading to a server crash.
The necessity of considering security, reliability, and optimization in API design.
How to create production-grade APIs with best practices.
The role of versioning in maintaining API compatibility for existing and new users.
The importance of structuring endpoints in API design.
Functionality of endpoints and how it should be clearly defined in API design.
Avoiding useless words in endpoint definitions for clarity.
Optimization techniques such as pagination and filtering in API design.
The implementation of security measures like rate limiting to prevent attacks.
Using tools like Redis for caching to improve API response times.
Ensuring 24/7 availability of APIs through scaling practices.
The difference between horizontal and vertical scaling for API availability.
The practice of versioning APIs to maintain compatibility and allow for updates.
Transcripts
हेलो एवरीवन व्हाट्स अप तो गाइस आज की इस
वीडियो के अंदर हम लोग डिस्कस करेंगे
एपीआई डिजाइनिंग के बारे में एंड ट्रस्ट
मी गाइस यह बहुत ही ज्यादा इंपोर्टेंट है
एंड इसके बारे में बहुत ही कम बात होती है
एपीआई डिजाइनिंग क्या होती है यह क्यों
इतनी ज्यादा इंपोर्टेंट है एंड अगर आप एक
बैक एंड डेवलपर है तो क्यों आपको अपना
मेजोरिटी ऑफ द टाइम स्टार्टिंग के अंदर
एपीआई डिजाइनिंग के ऊपर स्पेंड करना चाहिए
बात करेंगे एंड इसके बाद हम लोग बात
करेंगे कि अच्छी एपीआई आप कैसे डिजइन कर
सकते हैं कौन सी चीजों का आपको ध्यान रखना
है एपीआई डिजाइन करते टाइम कैसे आप
प्रोडक्शन ग्रेड लेवल की एपीआई को क्रिएट
कर सकते हैं तो गाइ एपीआई डिजाइनिंग क्यों
इतनी ज्यादा इंपॉर्टेंट है तो इसको बताने
के लिए मैं आपको एक स्टोरी सुनाता हूं
वैसे तो ये स्टोरी मेरी ही है लेकिन इससे
आपको बिल्कुल क्लियर हो जाएगा कि एपीआई
डिजाइनिंग क्यों इतनी ज्यादा इंपॉर्टेंट
है एंड क्यों मैं बार-बार कह रहा हूं कि
एपीआई डिजाइनिंग के ऊपर फोकस करना चाहिए
स्टार्टिंग के अंदर तो स्टोरी को स्टार्ट
करते हैं तो गाइ जब मैं बैक एंड डेवलपमेंट
करना स्टार्ट किया था तो मैं काफी अच्छी
एपीआई बना लेता था तो काफी अच्छा एपीआई
में मैं हो गया था तो मैंने एक प्लेटफॉर्म
के बारे में सुना था उस वक्त तो
प्लेटफॉर्म का नाम था रैपिड एपीआई तो आज
भी बहुत चलता है तो रैपिड एपीआई के अंदर
क्या था कि वहां पर हम लोग एपीआई सेल कर
सकते हैं तो मैंने भी सोचा कि मैं भी वहां
पर एपीआई सेल करूंगा तो मैं नोट जस के
अंदर एपीआई बनाता था तो मैंने कुछ एपीआई
को वहां पर बनाया एंड उसको सेल करना
स्टार्ट कर दिया तो अभी वहां पर इशू क्या
हुआ बहुत ही ज्यादा इंपॉर्टेंट है एंड
इसको जरूर सुनना गाइस इससे आपको पता चलेगा
कि एपीआई डिजाइनिंग क्यों इंपोर्टेंट है
तो अभी क्या हुआ गाइस कि मैंने ईपीआई सेल
करना वहां पर स्टार्ट कर दिया एक दो ईपीआई
अच्छे से सेल हुई भी तो अभी क्या हुआ कि
मेरी आदत थी कि मैं हर सुबह उठकर स्टैटस
चेक करता था अपनी एपीआई के एपीआई के कि
कितनी रिक्वेस्ट हुई है या फिर कितने
यूजर्स आए हैं तो वो सारी चीजें मैं चेक
करता था तो ऐसे ही एक सुबह मैं उठा मैंने
चेक किए स्टैट्स एंड सब कुछ नॉर्मल था
एवरीथिंग वास नॉर्मल तो तब क्या हुआ कि
मेरे देखते देख देखते विद इन द स्पैन ऑफ
फाइव टू सिक्स सेकंड्स मेरी एपीआई पर हुआ
एक डी डॉस अटैक वहां पर एक यूजर द्वारा
12000 रिक्वेस्ट सेंड की गई 12000
रिक्वेस्ट विद इन द स्पैन ऑफ फ टू सिक्स
सेकंड्स तो उससे क्या हुआ कि जो मेरी
एपीआई थी वो क्रैश हो गई तो मैं जनरली
क्या करता था कि मैं ईट पर अभी भी वैसे
करता हूं तो मैं एडब्ल्यू एस ईट मशीनस पर
एइस को
डिप्लॉयड एस के लडा फंक्शन जो कि सर्वरलेस
आर्किटेक्चर है वहां पर
जिस एपीआई पर अटैक हुआ था वो ac2 पर
डिप्लॉयड थी एंड रैपिड एपीआई के वैसे तो
खुद की भी सिक्योरिटी आती है रेट लिमिटिंग
वगैरह आती है लेकिन उस वक्त मैंने क्या
किया था मैंने रेट लिमिटिंग को बहुत
ज्यादा हाई कर रखा था क्योंकि उससे मुझे
था कि तो उससे मुझे क्या था कि मेरी एपीआई
को ज्यादा से ज्यादा लोग बाय करेंगे एंड
तब मैं इतना ज्यादा इस बात का ध्यान नहीं
देता था कि रेट लिमिटिंग सिक्योरिटी एंड
ऑल दोज थिंग्स तो तब क्या हुआ कि मेरा
सर्वर फट गया तो क्रैश हो गया पूरी तरीके
से एंड मुझे एडब्ल्यू एस का ब अच्छा खासा
आ गया था एंड गाइस उस टाइम मुझे
रियलाइफ नहीं कर सकते कि हमने सिंपली
एपीआई को बनाया एंड उसको सेल करना स्टार्ट
कर दिया या फिर उसको पब्लिश करना स्टार्ट
कर दिया प्रोडक्शन ग्रेड के अंदर बिकॉज ये
एक अच्छी प्रैक्टिस नहीं है फॉर एग्जांपल
अगर हम एपीआई को सेल कर भी रहे हैं तो
किसी का सिस्टम पूरा का पूरा सिस्टम आपके
एपीआई पर डिपेंडेंट हो सकता है अगर आपकी
एपीआई में कोई भी प्रॉब्लम आती है तो अगले
बंदे का पूरा का पूरा सिस्टम क्रैश हो
सकता है जो आपके एपीआई को यूज कर रहा है
तो उसका नुकसान हो सकता है एंड आपका भी
नुकसान हो सकता है इसकी वजह से तो उस टाइम
मैंने रियलाइफ किया कि सिक्योरिटी
अवेलेबिलिटी एंड और भी बहुत सारी चीजें
हैं जिसका आपको ध्यान रखना होता है अगर आप
एक प्रोडक्शन ग्रेड लेवल की एपीआई को
क्रिएट करना चाहते हैं या आप क्रिएट करते
हैं या आप सेल करना चाहते हैं तो ये सारी
चीजें ध्यान में रखना बहुत ही ज्यादा
इंपोर्टेंट है एंड गाइस दिस वाज द स्टोरी
यही थी स्टोरी एंड इसी से हमें पता चलता
है कि सिस्टम डिजाइन या फिर हम लोग कह
सकते हैं कि एपीआई डिजाइन करना कितना
ज्यादा इंपॉर्टेंट है तो हमें मेजॉरिटी ऑफ
द टाइम पहले एपीआई डिजाइनिंग में करना
चाहिए कि कौन सी चीजें क्या चीजें हमें
इंप्लीमेंट करनी होगी एपीआई के अंदर कितने
यूजर्स आ सकते हैं रेट लिमिटिंग लगा सकते
हैं या फिर क्या-क्या चीजें हमें करनी
पड़ेंगी ताकि हमें पहले से पता हो ताकि
ऐसी चीजें या ऐसी प्रॉब्लम्स ना आए
प्रोडक्शन ग्रेड के अंदर हमें काफी सारी
चीजों का ध्यान रखना होता है तो उसके लिए
काम में आता है एपीआई डिजाइनिंग तो इस
वीडियो के अंदर हम लोग देखते हैं कि हम
लोग अच्छी एपीआई को कैसे डिजाइन कर सकते
हैं क्या-क्या चीजों का हमें ध्यान रखना
होता है तो इसको बताने के लिए मैं आपको
लेकर चलता हूं अपनी कंप्यूटर स्क्रीन के
ऊपर तो गाइस हम हमारी कंप्यूटर स्क्रीन पर
आ चुके हैं एंड अभी हम लोग देखते हैं कि
हम लोग एक अच्छी एपीआई कैसे डिजाइन कर
सकते हैं एंड गाइस बीइंग वेरी ऑनेस्ट एक
एपीआई को डिजाइन करना बिल्कुल भी डिफिकल्ट
नहीं है लेकिन एपीआई को डिजाइन करना काफी
ज्यादा इंपोर्टेंट है अगर आप इससे पहले
एआई को डिजाइन नहीं करते थे एंड
डायरेक्टली कोड करना स्टार्ट कर देते थे
तो वो प्रैक्टिस अभी छोड़ दो क्योंकि
डिजाइन के अंदर हम लोग सारी अच्छी
प्रैक्टिसेस को फॉलो करने की पूरी कोशिश
करते हैं एंड गाइस नाउ लेट्स स्टार्ट तो
गाइस जब हम एपीआई को डिजाइन करते हैं तो
हमें गिने चुने पांच या छह चीजों का ध्यान
रखना होता है सो फर्स्ट वन है हमारा
स्ट्रक्चर ऑफ एंड पॉइंट्स
तो इसको एक्सप्लेन करने से पहले स्ट्रक्चर
ऑफ एंड पॉइंट्स इसको एक्सप्लेन करने से
पहले मैं यहां पर एक दूसरी चीज भी लिख
देता हूं ये हमारी पहली थी दूसरी चीज थी
इन दोनों को एक साथ एक्सप्लेन करूंगा सो
सेकंड वन इज फंक्शनैलिटी ऑफ द एंड पॉइंट्स
फंक्शनैलिटी ऑफ एंड पॉइंट्स तो गाइस अभी
हम लोग बात करते हैं हमारे फर्स्ट पॉइंट
की सो फर्स्ट पॉइंट क्या था हमारा
स्ट्रक्चर ऑफ द एंड पॉइंट्स राइट
स्ट्रक्चर ऑफ एंड पॉइंट्स
तो गाइ इसके अंदर क्या है कि हमें हमारे
जो भी एंड पॉइंट्स हैं हमारी एपीआई के
उसका स्ट्रक्चर हमें डिफाइन करना पड़ेगा
स्टार्टिंग स्टार्टिंग के अंदर एंड जितनी
भी हमारी बैक एंड की एपीआई होंगी सेम बैक
एंड की एपीआई होंगी तो वो सेम काइंड ऑफ
स्ट्रक्चर को फॉलो करेंगी फॉर एग्जांपल
अगर हमारे पास एंड पॉइंट्स हैं स्ल
एपीआई स् v1 एंड इसके बाद हमारा कोई एंड
पॉइंट है तो यहां पर आप एक चीज ध्यान कर
सकते हो कि यहां पर स्टार्टिंग के अंदर
मेरे जो भी बैक एंड की एपीआई होंगी वो इस
स्ट्रक्चर को फॉलो कर रही है सबसे पहले
एपीआई एपीआई आएगा एंड देन वर्जनिंग लाइक
v1 अभ ये v1 क्या है इसका भी मीनिंग होता
है गाइस वो आगे हम लोग डिस्कस करेंगे तो
आप देख सकते हैं गाइस के स्ट्रक्चर क्लियर
होना चाहिए फॉर एग्जांपल अभी अगर मैं यहां
पर यूजर्स एंड पॉइंट बनाता हूं तो यूजर के
रिलेटेड जो भी सारी चीजें हैं वो इस एंड
पॉइंट के द्वारा हैंडल की जाएंगी फॉर
एग्जांपल अगर फॉर एग्जांपल अगर आप एक सोशल
मीडिया पप है उसका आपने बैक एंड बनाया है
तो यूजर की जो भी सारी चीजें हैं फॉर
एग्जांपल अगर हमें यूजर्स के कमेंट्स को
फैच करना है तो वो इस स्ट्रक्चर को फॉलो
करेंगे यूजर्स एंड कमेंट्स तो आप देख सकते
हो कि हर एक चीज एक स्ट्रक्चर वे में हो
रही है तो हमें हमारे एंड पॉइंट्स को
स्ट्र शर्ट रखना है लाइक यूजर्स की जो भी
चीजें होंगी वो सारी की सारी यहां पर होगी
ऐसे अगर हमने बैक एंड का एडमिन बना रखा है
तो हम लोग स्लैश यहां पर एडमिन रख सकते
हैं स्ल एपीआई v व यहां पर एडमिन एंड
एडमिन के रिलेटेड जो भी सारी चीजें होंगी
उसके अंदर की जो भी फंक्शनैलिटी होगी जो
भी एज होंगी वो यहां पर जाएंगी तो गाइ ऐसे
हमें हमारी एंड पॉइंट्स को स्ट्रक्चर्ड
रखना है तो गाइस देन हमारा पॉइंट है
फंक्शनल ऑफ एंड पॉइंट्स इसके लिए मैं एक
एग्जांपल लूंगा एक एग्जांपल है हमारे पास
फॉर एग्जांपल हां पर हमारे पास गेट
रिक्वेस्ट है एक एंड इसका एंड पॉइंट है
स्ल एपीआई स् v1 स्ल
यूजर्स स्लश
यूजर
आईडी ऑर्डर्स
तो गाइस इस एंड पॉइंट को देखकर आपको क्या
लग रहा होगा कि इसकी फंक्शनैलिटी क्या है
डेफिनेटली इसके अंदर कुछ यूजर्स का डाटा
होगा एंड यूजर एंड ये जो गेट रिक्वेस्ट है
ये हमें क्या रिटर्न कर रही होगी ये हमें
एक स्पेसिफिक यूजर का ऑर्डर्स का डाटा
रिटर्न कर रही होगी तो गाइस यही है सेकंड
पॉइंट सेकंड पॉइंट क्या कहता है तो हमारे
एंड पॉइंट से यह डिफाइन होना चाहिए कि ये
एंड पॉइंट क्या फंक्शन इस एंड पॉइंट की
क्या फंक्शनैलिटी होगी तो यह हमें क्या
रिस्पांस रिटर्न करेगा एंड सिमिलरली गाइस
यहां पर एक और चीज है जो कि आपको ध्यान
रखना है एंड गाइस इसके लिए भी मैं एक
एग्जांपल लेता
हूं फॉर एग्जांपल अगर हम ई-कॉमर्स का एक
बैक एंड बना रहे हैं तो वहां पर फॉर
एग्जांपल हम कड ऑपरेशंस परफॉर्म करेंगे
राइट तो कड के लिए हमें एपी बनानी है अगर
कड आपको नहीं पता तो आप इसके बारे में
सर्च कर सकते हैं बेसिकली क्रिएट रीड
अपडेट एंड डिलीट तो हमें ये फंक्शनैलिटी
इंप्लीमेंट करनी होती है तो गाइस ये हमारी
कुछ कड ऑपरेशन की एपीआई है जो कि मैंने
यहां पर डिफाइन करें करी है तो यहां पर आप
एक चीज ध्यान से देख सकते हो कि जो फर्स्ट
वाली है एंड जो सेकंड वाली है ये
एगजैक्टली सेम है एंड जो थर्ड वाली है एंड
फोर्थ वाली है यह भी इसका जो जो एंड पॉइंट
है वो एगजैक्टली सेम है लेकिन यहां पर जो
डिफरेंस है वो है सिर्फ मेथड्स का तो गाइस
ये चीज प्रोडक्शन ग्रेड के अंदर बहुत ही
ज्यादा यूज होती है तो गाइस यहां पर मैं
क्या कर सकता था जैसे कि अभी पोस्ट
रिक्वेस्ट है तो यहां पर अगर प्रोडक्ट्स
क्रिएट हो सकते हैं तो बिगिनर्स क्या करते
हैं कि यहां पर एपीआई का एंड पॉइंट क्या
रख देते हैं क्रिएट प्रोडक्ट्स लेकिन अगर
आप ध्यान से सोचो तो यहां पर हम लोग एक
पोस्ट रिक्वेस्ट कर रहे हैं तो पोस्ट
रिक्वेस्ट का क्या मतलब होता है क्या
मीनिंग होता है कि हम लोग कुछ क्रिएट कर
रहे हैं तो यहां पर क्रिएट लगाने का तो
कुछ मीनिंग रह ही नहीं जाता राइट तो यह
बिल्कुल सेंस नहीं बनाती यह बात
राइट तो हमें गाइस यूजलेस वर्ड्स इसके
अंदर नहीं डालने अगर पोस्ट रिक्वेस्ट है
तो डेफिनेटली कुछ ना कुछ क्रिएट हो रहा
होगा तो यहां पर क्रिएट वर्ड यूज करने का
बिल्कुल सेंस बनता ही नहीं है तो हमें
यूजलेस वर्ड्स या अननेसेसरी वर्ड्स अपने
एंड पॉइंट्स के अंदर नहीं ऐड करने हैं एंड
गाइस हमारा थर्ड पॉइंट है
ऑप्टिमाइजेशन
ऑप्टिमाइजेशन एंड सिक्योरिटी
ये काफी इंपोर्टेंट है एंड इसके अंदर
सिक्योरिटी रियली वेरी इंपोर्टेंट एंड
ऑप्टिमाइजेशन के अंदर भी काफी सारी चीजें
आती है जो कि बहुत ही गुड प्रैक्टिसेस के
अंदर आती है तो उसको डिस्कस करते हैं तो
गाइस नेक्स्ट ऑप्टिमाइजेशन एंड बेस्ट
प्रैक्टिसेस के अंदर क्या आता है कि हमारी
जो एपीआई है अगर उसका डेटा जो कि वो दे
रही है उसका डाटा अगर ह्यूज डाटा है काफी
सारा डाटा है तो वहां पर जनरली गुड
प्रैक्टिस फॉलो क्या होती है कि उसके अंदर
पेजिनेशन होती है पेजिनेशन होती है जो
हमारी एज है वो क्वेरीज को एक्सेप्ट करती
है अभी फॉर एग्जांपल जैसे कि मैंने यहां
पर दो एपीआई लिख रखी हैं दो एपीआई एंड
पॉइंट्स लिख रखे हैं जो कि डेमोंस्ट्रेट
करते हैं कि कैसे क्वेरीज एंड पेज नेशन
यहां पर इंप्लीमेंट होती है सो गाइ फर्स्ट
एग्जांपल है पेज नेशन की एंड यहां पर इस
एपीआई के एंड पॉइंट से पता चल रहा है कि
यह प्रोडक्ट्स को फेच कर रही है लेकिन
यहां पर मैंने कुछ क्वेरीज पास कर रखी हैं
फॉर एग्जांपल यह लिमिट ये क्या दिखा रहा
है कि प्रोडक्ट्स जो भी फेच होंगे उसकी
लिमिट मैंने 100 सेट करके के एक टाइम में
100 प्रोडक्ट्स ही फैच होंगे यहां पर इसको
हम लोग चेंज कर सकते हैं ये वेरिएबल होता
है अगर हम एक टाइम में 10 प्रोडक्ट्स को
लिस्ट करना चाहते हैं तो हम लोग यहां पर
10 भी कर सकते हैं एंड ऑफसेट जो कि पेज
नेशन को दिखाता है बेसिकली यहां पर हम लोग
पेजेस को दिखा सकते हैं फॉर एग्जांपल अगर
हमारे पास कोई ऐप है या फिर वेबसाइट है वो
एक बार में सिर्फ 10 रिजल्ट्स को ही
दिखाती है एंड जैसे ही हम लोग स्क्रोल
डाउन करते हैं तो वो अगले 10 को फैच कर
लेती है तो वो इस तरीके की क्वेरी से या
इस तरीके की एपीआई से होता है तो इस तरीके
की एपीआई से हम लोग वैसे फेचिंग कर सकते
हैं तो गाइस नेक्स्ट एग्जांपल है काफी
इंटरेस्टिंग है एंड ये है एग्जांपल
फिल्टरिंग के अगर हमारे पास ह्यूज डाटा है
तो डेफिनेटली हमें फिल्टरिंग का ऑप्शन भी
हमारी ईपे के अंदर देना चाहिए एंड यहां पर
वो क्वेरीज के थ्रू मैंने दे रखा है तो
यहां पर क्या हो रहा है आप देख सकते हो कि
यहां पर मैंने क्वेरीज के अंदर एक रखा है
स्टार्ट डेट एक रखा है एंड डेट ताकि मैं
डेट के हिसाब से डाटा को फिल्टर कर पाऊं
एंड उसको रिटर्न कर पाऊं इन रिस्पांस तो
ऐसे आप गुड प्रैक्टिसेस को यूज कर सकते
हैं यह काफी गुड प्रैक्टिस मानी जाती है
अगर आप फिल्टरिंग सर्चिंग पेज नेशन अपनी
ईपी के अंदर इंप्लीमेंट करते हो क्योंकि
डाटा ह्यूज भी हो सकता है तो इसको भी
इंप्लीमेंट आप कर सकते हो अगर डाटा सच में
काफी ज्यादा डाटा है एंड काफी ज्यादा
लिस्ट उसकी हो सकती है ओके तो गाइस अब बात
आती है सिक्योरिटी की एंड ये द मोस्ट
इंपोर्टेंट पार्ट है एपीआई डिजाइनिंग का
क्योंकि यहां पर हम लोग हमारी एपीआई की
सिक्योरिटी के बारे में बात करते हैं वो
कैसे इंप्लीमेंट करनी है उसकी
इंप्लीमेंटेशन के ऊपर बात करते हैं फॉर
एग्जांपल जैसे कि डॉस अटैक होता है राइट
जैसे कि मेरी एपीआई के ऊपर भी डी डॉस अटैक
हुआ था एंड मुझे काफी ज्यादा उसका नुकसान
हुआ था तो उसको कैसे प्रिवेंट कर सकते हैं
सिंपली उसके लिए हम लोग रेट लिमिटिंग जैसी
बेस्ट प्रैक्टिसेस को यूज कर सकते हैं एंड
ट्रस्ट मी गाइस रेट लिमिटिंग बहुत ही
ज्यादा यूज होता है इंडस्ट्री के अंदर तो
रेट लिमिटिंग के अंदर क्या होता है कि हम
लोग लिमिट कर देते हैं कि एक यूजर एक टाइम
फ्रेम में कितनी रिक्वेस्ट सेंड कर सकता
है हमारी एपीआई
को फॉर एग्जांपल अगर हमने सेट कर रखा है
रेट लिमिटिंग को फॉर एग्जांपल अगर हमने दो
सेट कर रखा है एंड इन द टाइम फ्रेम ऑफ वन
आर तो एक घंटे में एक यूजर सिर्फ दो ही
रिक्वेस्ट डाल सकता है ओबवियसली हम इसको
बढ़ा सकते हैं लेकिन इससे क्या होगा कि
डॉस अटैक की जो प्रोबेबिलिटी है वो बहुत
ही ज्यादा कम हो जाएगी फॉर एग्जांपल अगर
एक यूजर है वो सिर्फ दो ही रिक्वेस्ट में
आ सकता है एक आर के अंदर तो यहां पर यह
वाला यूजर डॉस अटैक कर ही नहीं सकता अगर
यहां पर और यूजर आते हैं और यूजर आते हैं
जितने भी यूजर आ जाए तो वो मैक्सिमम एक
घंटे के अंदर दो ही रिक्वेस्ट डाल सकते
हैं तो गाइस इस सिंपल रेट लिमिटिंग से
हमारे जो डॉस अटैक का खतरा है वो चला गया
तो गा ऐसी प्रैक्टिसेस हम फॉलो कर सकते
हैं हमारी सिक्योरिटी एंड गाइस यहां पर एक
और चीज है कि हम लोग कोरस को यूज कर सकते
हैं एंड आई नो कि कोरस को काफी लोग यूज
करते हैं लेकिन वह क्या करते हैं वह सभी
चीजों का वो सभी आईपी से एक्सेस दे सकते
हैं लेकिन यहां पर हम लोग स्पेसिफाई कर
सकते हैं कि कौन सी आईपी एड्रेसस है जिससे
के जो सर्वर पर रिक्वेस्ट आ सकती है लाइक
स्पेसिफिक हम लोग आईपीस की लिस्ट दे सकते
हैं कि सिर्फ और सिर्फ यही एपीआई यही
आईपीस हमारी जो एपीआई को हिट कर सकती
हैं तो यह भी काफी यूज होता है ये करना भी
चाहिए गाइस ये भी दी मोस्ट इंपोर्टेंट
सिक्योरिटी चीज है जो कि हमें इंप्लीमेंट
करनी ही चाहिए एंड गाइस इससे अलावा भी और
भी बहुत सारी सिक्योरिटी टेक्निक्स हैं जो
कि हम लोग यूज कर सकते हैं फॉर एग्जांपल
ऑथेंटिकेशन एंड ऑथराइजेशन
ऑथेंटिकेशन एंड
ऑथराइजेशन इसके अंदर क्या है हम लोग टोकन
यूज कर सकते हैं एंड अ यूजर को टोकन दे
सकते हैं एंड वो स्पेसिफिक टोकन से ही
हमारे बैक एंड को हिट कर सकता है हमारी
एपीआई को हिट कर सकता है एंड ऐसी बहुत
सारी टेक्निक्स हैं गाइस एंड गाइस आप
डेफिनेटली
googlethalli.com फॉर एपल एक ब्लॉगिंग की
एपीआई है जिसका जो डाटा है वो फ्रीक्वेंसी
सर्विसेस का यूज कर सकते हैं रेडिश एक इन
मेमोरी डेटाबेस है या फिर हम लोग काफ का
का यूज कर सकते हैं तो इनका क्या बेनिफिट
होता है कि इनकी एक तो बहुत ही हाई थ्रू
फोटो होती है हाई थ्रू पुट तो ये बहुत
सारी रिक्वेस्ट को हैंडल कर सकते हैं एक
टाइम के अंदर जो कि नॉर्मल डेटा बेसेस
नहीं कर पाते एंड एक बिकॉज ये इन मेमोरी
डेटा बेसेस होते हैं तो इनका जो रिस्पांस
है वो बहुत ही ज्यादा फास्ट होता है वो
क्रेजी फास्ट होता है रिस्पांस फास्टर तो
यहां पर हम लोग क्या कर सकते हैं इनका यूज
कर सकते हैं तो यहां पर क्या होगा अगर कोई
भी यूजर अ हमारे सर्वर को हमारी एपीआई पर
हिड करेगा तो वो क्या करेगा कि सबसे पहले
जैसे कि हम लोग रेडिश यूज कर रहे हैं तो
रेडिश को चेक करेगा कि क्या यहां पर अ जो
हमारा डाटा है वह पड़ा है जो कि ये यूजर
मांग रहा है तो अगर नहीं तो हमारे डीवी
में जाता है डीवी में जाता है एंड डीवी से
डाटा लेकर आता है तो वहां पर यूजर को सेंड
कर देता है एंड ऑन द सेम टाइम वो रेडिस को
भी सेंड कर देता है एंड वहां पर स्टोर कर
देता है तो जैसे ही अगर एक और यूजर आया
यूजर आया एंड उसी ने सेम एपीआई पर हिट
किया है तो वो क्या करेगा यहां पर सर्वर
सबसे पहले रेडिस पर जाएगा एंड उसको वहां
पर डाटा मिल जाएगा तो ये यहीं से उठाएगा
एंड इसको सेंड कर देगा एंड गाइस ये बहुत
ही ज्यादा फास्ट होता है इतना फास्ट होता
है मैं आपको एक एग्जांपल देता हूं जैसे कि
अगर आपकी नॉर्मल एपीआई को 1000 मिली
सेकंड्स लग रहे हैं रिजॉल्व होने के लिए
तो अगर आप रेडिश का यूज़ करते हैं एंड
कैचिंग वगैरह करते हैं तो यहां पर आपको 12
से 15 मिली सेकंड्स ही लगेंगे तो आप देख
सकते हो गाइस कितना ज्यादा डिफरेंस है तो
ये क्रेजी फास्ट हो जाता है क्रेजी एंड
गाइ जो लास्ट पॉइंट होता है वो है
अवेलेबिलिटी अवेलेबिलिटी तो गाइ हमें मेक
श्यर करना होता है कि जो हमारी एपीआई है
वो 24 * 7 अवेलेबल रहनी चाहिए
लाइक उसकी अवेलेबिलिटी होनी चाहिए फर एपल
अगर आपका यूजर बहुत ज्यादा बढ़ गया है
बहुत ज्यादा यूजर्स बढ़ गए हैं फॉर
एग्जांपल आपके सर्वर सिर्फ हज यूजर्स को र
कर सकता है अगर यूजर्स 2000 आ गए तो इस
केस में आपका सर्वर काम नहीं करेगा तो
इसके लिए आपको क्या करना चाहिए आपको
स्केलिंग का यूज करना चाहिए स्केलिंग आप
यहां पर दो तरीके की स्केलिंग होती है एक
तो हॉरिजॉन्टल स्केलिंग होती है
हॉरिजॉन्टल
स्केलिंग एक होती है वर्टिकल स्केलिंग
तो आप इन दोनों में से कोई भी यूज कर सकते
हैं लेकिन ज्यादातर जो है वह हॉरिजॉन्टल
स्किलिंग यूज होती
है अभी इनका डिफरेंस समझाता हूं फॉर
एग्जांपल अगर आपका अभी मैं हॉरिजॉन्टल
स्केलिंग की बात कर रहा हूं
हॉरिजॉन्टल लिंग फॉर एग्जांपल आपका यह
सर्वर है एंड यहां पर यह हैंडल कर सकता है
हज पीपल को हज यूजर को एंड यहां पर आ गए
आपके पास 2000 यूजर्स बहुत सारे यूजर्स आ
गए तो हॉरिजॉन्टल स्केलिंग के अंदर क्या
होगा कि जो आपके कुछ यूजर्स है वो तो यह
सर्वर संभालेगा एंड इसका एक रेप्ट बन
जाएगा सर्वर का एक रेप्ट बन जाएगा तो फॉर
एग्जांपल अगर 1000 यूजर है तो यहां से 500
तो यह सर्वर संभालेगा सर्वर वन एंड
500 यह सर्वर टू संभालेगा तो इससे जो है
आपकी जो एपीआई है जो आपका बैक एंड है व
अवेलेबल
रहेगा आपका सर्वर है व हमेशा अवेलेबल
रहेगा बिकॉज यहां पर हॉरिजॉन्टल स्केलिंग
हो रही है अगर यूजर्स ज्यादा आ रहे हैं तो
एक और सर्वर रेप्ट हो रहा है एंड जो लोड
है वह दोनों सर्वर्स आपस में बांट लेते
हैं तो इससे क्या होगा कि आपके जो सर्वर
है आपका बैक एंड है वो हमेशा अवेलेबल
रहेगा एंड वर्टिकल स्केलिंग के अंदर क्या
होगा कि फॉर एग्जांपल आपका जो सर्वर है वह
हज यूजर्स को एंटर कर सकता है बिकॉज इसकी
कन्फेशन ऐसी है तो वर्टिकल स्केलिंग के
अंदर क्या होता है वर्टिकल
स्केलिंग इसके अंदर क्या होता है कि हम
लोग सर्वर की कन्फेशन को इंक्रीज करते हैं
फॉर एग्जांपल अगर इसकी रैम पहले 4gb थी तो
अब हम उसको बढ़ाकर 16gb कर सकते हैं इसकी
अगर मेमोरी जो इसकी स्टोरेज है व अगर 100
जीब थी उसको बढ़ाकर हमने 500 जीब कर दी
ऐसे हम लोग इसके कन्फेशन बढ़ा सकते हैं तो
इसको कहते हैं वर्टिकल स्केलिंग लेकिन
ज्यादातर जो इंडस्ट्री में ती है वो
हॉरिजॉन्टल स्केलिंग बहुत ही ज्यादा यूज
होती है एंड वर्टिकल स्केलिंग भी यूज होती
है लेकिन हॉरिजॉन्टल ज्यादा होती है एस
कंपेयर टू वर्टिकल एंड गाइस यहां पर एक और
चीज है जो कि गुड प्रैक्टिस के अंदर आती
है जोक मैं पहले डिस्कस करना भूल गया
प्रक्स कि आपको वर्जनिंग मेंटेन करनी है
अगर आप कोई भी एपीआई बना रहे हैं तो आपको
वर्जनिंग मेंटेन करनी है फॉर एग्जांपल
यहां पर मैं आपको ओके इस चीज को आपको मैं
एग्जांपल के द्वारा समझाता हूं वर्जनिंग
क्या होता है जैसे कि एपीआई है यहां पर वव
इसको कहते हैं वर्जनिंग य पर यूजर जैसे कि
य वर्जन वन की आपने पहले एआई ब तो ये
वर्जन वन की एपीआई थी लेकिन टाइम क्या
होगा कि आप ने कुछ ऐसे चेंजेज करने हैं जो
कि कंपलीटली इस एंड पॉइंट के रिस्पांस को
चेंज कर देगा राइट तो हम नहीं चाहते कि जो
भी हमारे जो यूजर्स है वो ऑलरेडी इस एपीआई
को यूज कर रहे हैं उनका तो पूरा सिस्टम इस
एपीआई के ऊपर चल रहा है तो उसके सिस्टम पर
कुछ भी इंपैक्ट पड़े तो हम क्या करते हैं
कि हम लोग वर्ज नहीं करते हैं ये बहुत
इंपोर्टेंट है ये करनी चाहिए ये अच्छी
प्रैक्टिस होती है तो हमने न्यू एप बनाई
तो वो वर्जन टू के नाम से बनाती है एंड
सेम वो बनाई तो इससे क्या होगा कि जो आपके
पुराने यूजर्स हैं वो तो आपकी ओल्ड एपीआई
को यूज कर े एंड जो आपके न्यू यूजर होंगे
वो आपकी न्यू एपीआई को यूज़ कर सकते हैं
ऐसे आप वर्जनिंग कर सकते हैं ऐसे आप
कंपैटिबल रह सकते हैं पुराने यूजर से भी
एंड न्यू यूजर से भी तो इसको भी
इंप्लीमेंट करना चाहिए अच्छी प्रैक्टिस
होती है तो गाइ
दैट्ची है लेकिन वर्थ इट है एंड गाइस अगर
आपको अच्छी लगी तो प्लीज कंसीडर
सब्सक्राइब ंग द चैनल
5.0 / 5 (0 votes)