---
title: 'Laravel API Tutorial in Hindi / Urdu'
source: 'https://youtube.com/watch?v=zQwgCPsDXJ8'
video_id: 'zQwgCPsDXJ8'
date: 2026-06-22
duration_sec: 0
---

# Laravel API Tutorial in Hindi / Urdu

> Source: [Laravel API Tutorial in Hindi / Urdu](https://youtube.com/watch?v=zQwgCPsDXJ8)

## Summary

This tutorial, part of a Laravel course, teaches how to create and use APIs in Laravel with Sanctum. It explains what an API is, how it works with JSON, and demonstrates building a complete authentication system (register, login, logout) and a CRUD for posts, all secured with API tokens.

### Key Points

- **API Definition and Need** [[0:18]] — An API (Application Programming Interface) acts as an intermediary allowing different applications (e.g., a Laravel backend, an Android app, a React frontend) to communicate and access the same database without direct connection.
- **Common API Data Formats** [[2:52]] — APIs commonly use JSON (most popular, introduced by Google), XML (older, complex), or GraphQL (created by Facebook) to send and receive data. This tutorial uses JSON.
- **Laravel API Packages: Sanctum vs Passport** [[3:38]] — Laravel provides two main API packages: Sanctum (for simple to medium complexity APIs, good token management) and Passport (for complex APIs). This tutorial uses Sanctum.
- **Sanctum Token-Based Security Process** [[4:37]] — Sanctum uses a token-based system: on login, credentials are checked; if valid, a token is saved in the database and returned. For authenticated requests, the token is sent along, and Sanctum verifies it against the database.
- **Sanctum Token Uniqueness and Expiration** [[7:25]] — Sanctum tokens are unique per device/session. By default, they don't expire, but expiration can be set (e.g., hours, days) in config/sanctum.php. Tokens are permanently stored until explicitly deleted (e.g., on logout).
- **Installing Sanctum and Creating API Routes** [[8:08]] — Install Sanctum and generate the api.php routes file using the Artisan command: `php artisan install:api`. This creates a separate routes file for API endpoints.
- **User Model Trait for Token Management** [[9:12]] — In the User model, use the trait `Laravel\Sanctum\HasApiTokens` to enable token creation. Then add `use HasApiTokens;` inside the class to use the trait.
- **Login API Controller Method** [[9:44]] — In the AuthController, the login method: 1. Validates input (email, password). 2. Uses `Auth::attempt()` to check credentials. 3. On success, creates a token with `$user->createToken('API Token')->plainTextToken`. 4. Returns a JSON response with status, message, and token. 5. On failure, returns a JSON error with HTTP 401 status.
- **Logout: Deleting Tokens** [[14:10]] — The logout method finds the authenticated user, then deletes all their tokens using `$user->tokens()->delete()`. This completely revokes access.
- **Common HTTP Response Codes in APIs** [[15:25]] — 200 (OK), 201 (Created), 204 (No Content for deletes), 400 (Bad Request), 401 (Unauthorized - authentication failed), 403 (Forbidden - wrong permissions), 404 (Not Found), 500 (Internal Server Error).
- **Practical Project Structure** [[17:39]] — The practical project involves two controllers: AuthController (register, login, logout) and PostController (CRUD for posts). Posts can only be accessed by authenticated users (token required). The project also covers image upload via API.
- **Postman for API Testing** [[19:24]] — Postman is used to test the API endpoints. For local testing, the URL is http://localhost:8000/api/... . Send requests with the appropriate HTTP method and a Bearer token in the Authorization header for protected routes.
- **Database Configuration and Migrations** [[21:13]] — Configure the database in `.env` file. For this project, MySQL is used. After creating the necessary migrations (users table, posts table), run `php artisan migrate`.
- **Registration with File Upload Validation** [[30:17]] — The register endpoint in AuthController validates input (name, email, password) using custom validation. On success, the user is created in the database, and a JSON response is returned. The video also shows a method to return validation errors in JSON format.
- **Image Upload in Post CRUD** [[58:50]] — For creating a post, the tutorial handles file upload for the image field. The image is renamed using a timestamp, moved to `public/uploads`, and the filename is saved in the database.
- **Reusable API Response Helpers** [[87:35]] — To avoid code repetition, a `BaseController` is created with `sendResponse($data, $message)` and `sendError($error, $errorMessage, $code = 404)` methods. All other controllers then extend this base to use these methods for consistent JSON responses.

### Conclusion

This tutorial provides a complete foundational guide for building secure RESTful APIs with Laravel Sanctum, covering authentication, CRUD operations, image uploads, and best practices for a clean, maintainable codebase.

## Transcript

[संगीत]
हेलो दोस्तों, स्वागत है आपका हमारे
YouTube चैनल Yahoo बाबा पे। यह हमारा
लाराव कोड से रिलेटेड 61 ट्यूटोरियल है और
लारावल के इस वीडियो कोर्स में आप सीखने
वाले हैं कि कैसे हम लाराव की हेल्प से
एपीआई को क्रिएट कर सकते हैं और उनको यूज़
कर सकते हैं। तो आइए पहले समझते हैं कि
एपीआई का मतलब क्या होता है। देखिए जो
इसकी फुल फॉर्म है वो है एप्लीकेशन
प्रोग्राम इंटरफ़ेस। आइए इसको एक एग्जांपल
से समझते हैं कि इसकी जरूरत कहां होती है।
मान लीजिए आपकी एक वेबसाइट है जिसको आपने
लारवल के अंदर क्रिएट किया है या फिर किसी
दूसरे बैक एंड फ्रेमवर्क के अंदर जैसे
कोऑर्डिनेटर के एक पीएp और इसके साथ मान
लीजिए आप एक डाटाबेस यूज़ कर रहे हैं Mys
सीक्वल या फिर यहां पे ऐसा हो सकता है कि
कोई दूसरा डाटाबेस है जैसे सीक्वल लाइट या
फिर कोई नो सीक्वल डाटाबेस जैसे Mongo DB
या इसके अलावा कोई और भी डाटाबेसेस हो
सकते हैं। अब यहां पर हमारी कुछ
रिक्वायरमेंट ऐसी है कि जो हमारी वेबसाइट
है मान लेते हैं कि वो एक शॉपिंग की
वेबसाइट है। जो आप अपनी वेबसाइट पर
प्रोडक्ट्स दिखा रहे हैं वही सेम
प्रोडक्ट्स और वही सेम डाटा आप अपनी
मोबाइल एप्स के अंदर भी दिखाना चाहते हैं।
चाहे वो Android की एप है या फिर iPhone
की एप जिसको आपने अलग-अलग टेक्नोलॉजीस में
बनाया है। जैसे Android में या Swift में,
फ्लटर में, कॉटलिन में या फिर किसी और
दूसरे फ्रेमवर्क में। अब यहां पे होता
क्या है? जो हमारा Android फ्रेमवर्क है
या फिर Swift फ्रेमवर्क है वह सीधा से Mys
सीक्वल डाटा को असेस नहीं कर सकते या फिर
मोंगो डीबी के डाटा को या फिर ऐसा भी हो
सकता है कि हमारी जो वेबसाइट का बैक एंड
है वो लाराव में बना हुआ है और जो उसका
फ्रंट एंड है वो हमने बनाया है रेक्टस के
अंदर या फिर व्यू js या एंगुलर js के अंदर
तो रेक js व्यूs या एंगुलर js है यह भी
सीधा से डाटाबेस को असेस नहीं कर सकते
क्योंकि यह फ्रंट एंड लाइब्रेरीज़ या
फ्रेमवर्क्स होते हैं। डाटाबेस को असेस
करने के लिए हमें एक बैक एंड प्रोग्रामिंग
लैंग्वेज की ज़रूरत होती है। जैसे PHP,
Python, Go, RBI तो ऐसे कामों के लिए अगर
हमने Android के अंदर या RC js के अंदर या
Swift के अंदर हमने Mys सीकल के डाटा को
असेस करना है, मंगो डीबीसी या सीक्वल लाइट
के डाटा को असेस करना है, तो उसके लिए
यहां पर एक इंटरफ़ेस बनाया जाता है जिसको
हम बोलते हैं एपीआई एप्लीकेशन प्रोग्राम
इंटरफ़ेस। यह एक ऐसे फॉर्मेट में काम करता
है जिसको सारी लैंग्वेजज़ या सारे
फ्रेमवर्क्स इज़ली अंडरस्टैंड कर सकते हैं।
इसको बनाने से होता क्या है? जो भी हमारी
Android ऐप है या iPhone की ऐप है या फिर
हमारी वेबसाइट का जो फ्रंट हैंड है वह
रैक्ट में है या व्यू में है वह एक
रिक्वेस्ट इस एप्लीकेशन इंटरफेस को एक
रिक्वेस्ट सेंड करते हैं और जो यह
रिक्वेस्ट होती है एपीआई के थ्रू यह जाती
है सीधा डाटाबेस के पास और जैसी भी
रिक्वेस्ट गई होती है जैसे कोई डाटा को
फैच करके लाना है या डाटा को अपडेट करना
है या डिलीट करना है वो काम करने के बाद
जो हमारा डाटाबेस होता है वह एज ए
रिस्पांस कुछ ना कुछ वैल्यू एपीआई को सेंड
करता है। जैसे मान लीजिए हम एक डाटा को
असेस करना चाहते हैं तो वह डाटा फैच होके
एपीआई के पास आता है और एपीआई क्या करती
है उस डाटा को जहां से भी रिस्पांस आया
उसको सेंड कर देती है तो यही एपीआई का काम
होता है अब यहां पे एक क्वेश्चन उठता है
कि एपीआई ऐसे कौन से फॉर्मेट में काम करती
है कि वो सबको समझ में आ जाता है Android
को भी रेक्टस यू jswif को या किसी और
फ्रेमवर्क को तो देखिए जो फॉर्मेट होता है
या तो वह होता है jसon या फिर XML या फिर
ग्राफ क्यूएल जो XML है सबसे पुराना
फॉर्मेट मगर इसको समझना काफी कॉम्प्लेक्स
होता है और इसे बनाना भी। तो इसी के
रिस्पांस में Google ने एक खुद का एक
फॉर्मेट बनाया था जिसका नाम है Jसन जो
काफी ज्यादा पॉपुलर है और अभी कुछ साल
पहले Facebook ने भी एक फॉर्मेट बनाया
जिसको हम कहते हैं ग्राफिकल। यह जस्ट एक
डाटा को सेंड करने के लिए और रिसीव करने
के लिए एक फॉर्मेट होते हैं। तो हम इस
वीडियो में JSON को यूज़ करने वाले हैं।
देखिए अगर आपको एपीआई के बारे में पूरा
डिटेल में जानना है। अगर आपको उसका
बेसिक्स के बारे में कुछ भी नहीं पता तो
मैंने ऑलरेडी इस पे एक कंप्लीट कोर्स बना
रखा है पीएपी के साथ। अगर आपने वह वीडियोस
नहीं देखी हुई है तो उसका लिंक भी आपको
ऊपर मिल जाएगा। तो आइए अब इसके बाद देखते
हैं कि हम larvल के अंदर एपीएस कैसे
क्रिएट करेंगे। तो देखिए ऐसे काम करने के
लिए लारावेल के अंदर बहुत से पैकेजेस आते
हैं। मेनली इसके अंदर दो पैकेजेस हैं जो
लाराव ने खुद ने बनाए हैं। एक का नाम है
यहां पे sm और दूसरे का नाम है यहां पर
पासपोर्ट। इसके अलावा भी बहुत सारे थर्ड
पार्टी पैकेजेस आते हैं जिनसे आप एपीआई को
क्रिएट कर सकते हैं और उसको यूज़ कर सकते
हैं। तो इस वीडियो के अंदर हम यहां पर जो
पैकेज यूज़ करने वाले हैं, उसका नाम है
सtम। देखिए जो सटम है इस पैकेज का यूज़ हम
तब करते हैं अगर हमारी वेबसाइट जो है एक
छोटे लेवल की है या फिर एक मीडियम लेवल की
है और अगर आप यहां पर कोई कॉम्प्लेक्स
वेबसाइट बना रहे हैं जिसके अंदर
कॉम्प्लेक्स एपीआई बनेंगी तो वहां पर हम
दूसरा पैकेज यूज़ कर सकते हैं जिसका नाम है
पासपोर्ट तो मोस्टली केसेस में यहां पर हम
सटम ही यूज़ करते हैं। इनको यूज़ करने का
तरीका ऑलमोस्ट सेम ही होता है। आगे आने
वाली वीडियो में मैं आपको पासपोर्ट के
बारे में बताऊंगा कि पासपोर्ट से एपीआई
कैसे कनेक्ट करते हैं। अगर आप इन दोनों
पैकेजेस का यूज़ नहीं भी करना चाहते तो भी
आप इसमें इज़ली काम कर सकते हैं। जैसे हम
पी PHP के अंदर अपनी खुद की एपीआई क्रिएट
करते हैं। बिल्कुल वही काम आप यहां पर लार
लेवल के अंदर भी कर सकते हैं। मगर इस
वीडियो के अंदर हम यहां पर सटम यूज़ करने
वाले हैं। इसके कुछ एडवांस फीचर्स भी होते
हैं। जैसे इसके अंदर इनबिल्ट सिक्योरिटी
सिस्टम होता है जिसको हम टोकन कहते हैं
बेसिकली और इसमें काम करना और इसको हैंडल
करना और इसकी जो परफॉर्मेंस होती है वह
काफी अच्छी होती है। तो आइए अब समझते हैं
कि smt के अंदर जब हम एपीएस को क्रिएट
करते हैं तो उसका टोटल प्रोसेस क्या होता
है। देखिए अभी तक हम यह जान गए हैं कि
हमारी एक वेबसाइट है और जिसके साथ हम एक
डाटाबेस यूज़ कर रहे हैं माय सीक्वल का और
इन दोनों के बीच में हम काम करने के लिए
अपनी खुद की एक एपीआई क्रिएट कर रहे हैं
और उसके लिए हम यूज़ करने वाले हैं sm
एपीआई का पैकेज। अब यह पैकेज कैसे काम
करता है? मान लीजिए सबसे पहले जब हम अपनी
वेबसाइट पे जाएंगे और वहां पर लॉगिन
करेंगे। तो लॉग इन करने के लिए सबसे पहले
हमारी वेबसाइट से एक रिक्वेस्ट जाएगी
सर्वर पर जो जाएगी सीधा एपीआई के पास। इस
लॉगिन एपीआई के अंदर हमारे क्रेडेंशियल्स
की इंफॉर्मेशन भेजी जाएगी। मतलब कि
यूजरनेम और ईमेल को और जो एपीआई है वो
उसको आगे डाटाबेस में चेक करने के लिए भेज
देगी। अगर वो क्रेडेंशियल्स मैच कर जाते
हैं। मतलब कि यूजरनेम और पासवर्ड अगर मैच
कर जाते हैं तो sm एपीआई क्या करता है?
डाटाबेस में एक टोकन सेव कर देता है। जिस
टोकन को हम आगे अपनी वेबसाइट में कहीं
यूज़ करेंगे। और एज ए रिस्पांस जो हमारा
माय सीकल डाटाबेस है वह रिस्पांस एज ए
एपीआई टोकन को सेंड करता है और एक मैसेज
भी सेंड करता है कि डाटा सक्सेसफुली असेस
हुआ है कि नहीं। अगर वह सक्सेसफुली असेस
नहीं हो पाया मतलब कि यूजरनेम और पासवर्ड
अगर मैच नहीं हुए हैं तो वह कोई भी टोकन
सेव नहीं करता। वह सीधा ही एक फेल का
मैसेज एबीआई को सेंड कर देता है। और अगर
क्रेडेंशियल्स मैच कर जाते हैं तो वह एक
टोकन सेव करके एज ए रिस्पांस एबीआई को
सेंड कर देता है। और एपीआई क्या करता है?
वही सेम टोकन हमारी वेबसाइट को सेंड कर
देता है जिसे हम आगे जाकर कहीं पर भी सेव
कर सकते हैं। जैसे लोकल स्टोरेज में,
सेशंस में, कुकीज़ में जिसको हम अंदर वाले
पेजेस में आगे जाके चेक करेंगे। तो इस तरह
से यह नॉर्मल एपीआई से अलग होता है sm
एपीआई। यह बेसिकली अपने आप से ही एक
सिक्योरिटी का टोकन यहां पर सेव कर देता
है। तो जब भी हम सटम एपीआई को यूज़ करते
हैं, तो हमें सेशंस का यूज करने की कोई
जरूरत नहीं रहती है। क्योंकि यह डाटाबेस
के अंदर खुद से ही टोकन सेव कर देता है और
अंदर वाले पेजेस पे जहां पर भी हमें
ऑथेंटिकेशन की जरूरत है, वहां पर हमारे
वेबसाइट से जो एक टोकन जाता है, उसी को
बाद में चेक करता रहता है। अब इसके बाद
देखते हैं कि अगर हमने वेबसाइट पे जब
लॉगिन कर लिया और हमारे पास यह टोकन भी आ
गया जिसे हमने लोकल स्टोरेज में या सेक्शन
में सेव भी कर लिया है। अब इसके बाद अंदर
वाले जो पेजेस हैं जैसे कोई पोस्ट का पेज
या प्रोडक्ट का पेज, कैटेगरी का पेज।
उसमें जो प्रॉपर क्लोड सिस्टम होता है
जिसमें हम डाटा को रीड करते हैं, अपडेट,
इंसर्ट या डिलीट करते हैं उन पेजेस को जब
भी हम असेस करने लगेंगे तो हमें सर्वर पे
मतलब कि एपीआई में ये टोकन भी सेंड करना
पड़ेगा। जैसे हम डाटा को रीड करना चाहते
हैं तो हम यह टोकन भी सेंड करेंगे और अपनी
रिक्वेस्ट भी करेंगे सेंड एपीआई को कि
हमें कौन से पेज का डाटा देखना है। और
यहां पर सटाइम एपीआई क्या करेगा? उस टोकन
को पहले हमारे डाटाबेस के टोकन से चेक
करेगा। अगर वह सेम है और वह एक्सिस्ट भी
कर रहा है हमारे डाटाबेस में तभी वह हमारी
रिक्वेस्ट का एज ए रिस्पांस सेंड करेगा।
तो सेंटम एपीआई में यहां पर एक स्पेशल से
अलग फीचर होता है जिसको हम कहते हैं टोकन।
अब इन एपीआई को यूज करने का तरीका बिल्कुल
सेम रहेगा। जैसे हम अपने पीएपी कोर्स में
भी देख चुके हैं। हमारी यह कोई भी
रिक्वेस्ट हम एचटीटीपी से भेज सकते हैं।
और जो भी हमारा एचटीटीपी का मेथड रहेगा वो
सेम ही रहेगा जो हम मोस्टली एपीआई के साथ
एजेक्स में यूज़ करते हैं। जैसे कि रीड के
केस में यहां पर आता है गेट। अपडेट के केस
में हम यहां पर पुट मेथड का यूज़ करते हैं
या पैच मेथड का। इंसर्ट के लिए हम यहां पर
पोस्ट मेथड का यूज करते हैं और डिलीट के
केस में हम यहां पर डिलीट मेथड का यूज
करते हैं। तो आइए अब इसके बाद समझते हैं
कि जो हमने यह ऊपर प्रोसेस समझा है लॉग इन
का इसको अगर हमें कोड करना हो लारावेल के
अंदर तो हम उसके स्टेप्स कैसे फॉलो
करेंगे। तो देखिए जो सबसे पहला हमारा
स्टेप होता है जब भी हम सेंटम के साथ
एपीआई क्रिएट करना चाहते हैं तो सबसे पहले
हमें यहां पर लारावेल के अंदर अपनी एक
आर्टिसन की कमांड रन करनी होती है। PHP
आर्टिसन इंस्टॉल कॉलन एपीआई। यह कमांड
बेसिकली करती क्या है? यह दो काम करती है।
सबसे पहले तो यह हमारे प्रोजेक्ट के अंदर
smt एपीआई का पैकेज इंस्टॉल कर देती है।
और उसी के साथ यह यहां पर क्या करती है?
यह राउट फोल्डर के अंदर जाकर एक अलग से
फाइल भी बना देती है। एपीआई. Php। जैसे कि
हम अपनी पिछली वीडियोस में देख चुके हैं
कि राउट फोल्डर के अंदर एक फाइल होती है
वेब. PHP जिसके अंदर हम अपने राउट्स बनाते
हैं। तो देखिए जब आप एपीआई से अपना काम
करेंगे तो इसके राउट भी हम अलग से एक फाइल
में बनाते हैं जिसको हम कहते हैं API. PHP
तो जब ये दोनों काम हो जाते हैं इसके बाद
ही हमारा नेक्स्ट काम शुरू होता है। हमें
सबसे पहले ओपन कर लेनी है अपनी मॉडल की
फाइल जो मतलब कि मॉडल्स फोल्डर के अंदर
होती है यूजर पीएp फाइल। और इस फाइल के
अंदर आकर हमें सटम का एक मेथड यूज करना
होता है जिसे हम कहते हैं हैज़ एपीआई टोकन।
तो उसके लिए हमें सबसे पहले क्या करना है?
ऊपर फाइल में यूज़ करना है लार्वल सेंटम#
एपीआई टोकंस। यह मेथड को यूज़ करना जरूरी
है। तभी आपका जो एपीआई है वो टोकन क्रिएट
कर पाएगा। और इसको नीचे क्लास के अंदर आप
इस तरह से यूज़ कर लेंगे। यूज़ हैज़ एपीआई
टोकंस। तो ये दोनों स्टेप्स के बाद अब
हमारे को क्या करना है? जब भी हमारे को
अपनी वेबसाइट में जाकर कहीं पर भी लॉग इन
लगाना है। जैसे मान लीजिए यूजर का
कंट्रोलर फाइल है। उसके अंदर हम एक मेथड
बना लेते हैं लॉग इन नाम से जिसके अंदर
फॉर्म की सारी रिक्वेस्ट आएंगी जो यूजरनेम
और पासवर्ड होगा। और उसको चेक करने के लिए
हम अपना ऑथेंटिकेशन का सेम मेथड यूज़
करेंगे। जो हमने लाराव की ऑथेंटिकेशन
वीडियो में देखा था। आउट अटेम्प्ट ये
देखिए। तो इफ के अंदर मैंने यहां पे चेक
कर लिया कि हमारी जो ऑथेंटिकेशन है उसका
मैं अटेम्प्ट कर रहा हूं। ईमेल को चेक
करूंगा और पासवर्ड को। अगर यह दोनों
रिक्वेस्ट मैच कर जाती हैं हमारे डाटाबेस
में तो हम इस इफ कंडीशन के अंदर आ जाएंगे
और अगर यह फेल हो जाता है अटेम्प्ट तो यह
एल्स पार्ट के अंदर आ जाएगा। अब जब हम
एपीआई में काम करते हैं तो मैंने आपको
बताया कि हमारा जो रिस्पांस होता है और जो
रिक्वेस्ट होती है दोनों ही jसन फॉर्मेट
में होंगे या XML या फिर ग्राफ क्यूएल
में। तो इस वीडियो के अंदर तो हम JSON यूज़
कर रहे हैं। तो हम क्या करेंगे यहां पर एज़
ए रिस्पांस एक jसन का फॉर्मेट सेंड
करेंगे। अगर हमारा ये ऑथेंटिकेशन मैच हो
जाती है। कुछ इस तरह से। देखिए मैंने यहां
पर रिटर्न किया रिस्पांस। ये रिस्पांस नाम
का मेथड है जिसके अंदर एक मेथड आता है
जसन। मतलब कि जो हमारा रिस्पॉन्स है वो
किस फॉर्मेट में है? JSON फॉर्मेट में। और
इस जसन के अंदर हम यहां पर एक एरे पास
करेंगे। ये JSON मेथड क्या करेगा? उस एरे
को JSN फॉर्मेट में कन्वर्ट करके यूजर को
शो कर देगा। तो इस एरे के अंदर मैंने यहां
पर मल्टीपल कीज़ ली हैं। जैसे पहले मैंने
लिया स्टेटस जिसकी वैल्यू मैंने दे दी
ट्रू। जिसका मतलब जो आपने अटेम्प्ट करने
की कोशिश की थी, वह सक्सेसफुली अटेम्प्ट
हो चुका है। इस की का यूज़ करना ज़रूरी नहीं
है या इसका नेम भी जो आप अलग रखना चाहते
हैं, वो भी इज़ली रख सकते हैं। इसके बाद आप
यूज़र को कोई मैसेज शो करना चाहते हैं, तो
एक मैसेज नाम की की भी ले सकते हैं या
इसका रीनेम भी कर सकते हैं। उसके अंदर
मैंने एक मैसेज डाल दिया। और यहां पर लॉग
इन के टाइम पे जैसे मैंने आपको बताया था
कि सटम से हम क्या करते हैं? डाटाबेस में
एक टोकन सेव करा देते हैं। तो उसके लिए हम
यहां पे क्या करेंगे? एक टोकन नाम की की
लेंगे और उसके अंदर जो हमारा ऑथेंटिकेटेड
यूजर है जिसने लॉगिन किया है उसकी हेल्प
से यहां पर एक टोकन क्रिएट करेंगे। तो
उसके लिए हम सटम का एक मेथड यूज़ करते हैं
जिसका नाम है क्रिएट टोकन। क्रिएट टोकन
करने के बाद हम इसके अंदर एक की दे देते
हैं। यह कोई भी नेम हो सकता है। आप अपनी
मर्जी का कोई भी नाम रख सकते हैं। यह इस
की में एक वैल्यू स्टोर कर देगा। किस
फॉर्मेट में करेगा? प्लेन टेक्स्ट फॉर्मेट
में। यह सब डाटाबेस में सेव होगा सबसे
पहले। और उसके बाद यह एज ए रिस्पांस भी यह
की सेंड करेगा यूजर को जो यह डाटाबेस में
क्रिएट कर रहा है वही की यूजर को भी सेंड
कर देगा जो बाद में जाकर हम अपने सिस्टम
पे कहीं पे भी स्टोर करा सकते हैं सेशंस
की हेल्प से कुकीज़ से या फिर लोकल स्टोरेज
से जो हम नेक्स्ट वीडियो में सीखने वाले
हैं और यहां पर आपको एक बात याद रखनी है
कि जब भी हम सटम के साथ यह टोकन क्रिएट
करते हैं तो उसका एक टाइप भी होता है। तो
नेक्स्ट फॉर्मेट में आपको यहां एक की लेनी
है टोकन टाइप और इसके अंदर पास करना है
बियर। देखिए टोकन अलग-अलग टाइप के हो सकते
हैं। मगर जो सटम यूज़ करता है उसका नाम है
बियर। तो यह आपको हमेशा पास करना है जब भी
आप टोकन क्रिएट करने लगेंगे। यहां पे टोकन
से रिलेटेड एक बात मैं और भी बताना चाहता
हूं। जब भी आप यह टोकन क्रिएट करते हैं,
तो यह परमानेंटली सेव हो जाता है। यह अपने
आप से एक्सपायर नहीं होता है। जैसे कुकीज़
और सेशंस अपने आप से एक्सपायर भी हो सकते
हैं। मगर टोकन जो है यह अपने आप से
एक्सपायर नहीं होता है। अगर आप चाहते हैं
कि यह पर्टिकुलर जैसे 1 घंटे बाद, 2 घंटे
बाद या 24 घंटे बाद या 1 महीने बाद
एक्सपायर हो जाए, तो उसके लिए आप इसी मेथड
के अंदर टोकन क्रिएट करने के बाद यहां पर
एक्सपायरेशन भी सेट कर सकते हैं। जो हम
आगे देखेंगे कि हम कैसे कर सकते हैं। और
लास्ट में यहां पर मैं आपको एक चीज़ बताना
चाहता हूं। जब भी आप JSON का फॉर्मेट सेट
करते हैं तो यहां पर जो सेकंड पैरामीटर
होता है JSON मेथड के अंदर वह होता है
इसका रिस्पांस कोड। यहां पर अलग-अलग तरीके
के कोड आते हैं। जैसे कि हम अपने पीएपी
कोर्स में भी देख चुके हैं अजैक्स के साथ।
तो एक कोड होता है 200 जिसका मतलब होता है
कि हमारा डाटा सक्सेसफुली एज ए रिस्पांस
में आ चुका है। जो हमने रिक्वेस्ट करी थी
उसका रिस्पांस भी सक्सेसफुली आ चुका है।
यहां पर और भी बहुत तरीके के कोड्स होते
हैं जो अभी मैं आपको आगे डिटेल में बताने
वाला हूं। अब आते हैं इसके एल्स पार्ट
में। अगर हमारा जो यूजरनेम और पासवर्ड है
वह मैच नहीं होता तब यह एल्स पार्ट में आ
जाएगा। तो देखिए यह जो एल्स पार्ट में जो
हम डाटा रिस्पांस में हम सेंड करेंगे वो
भी जेसन फॉर्मेट में ही होना चाहिए कुछ इस
तरह से। तो मैंने यहां पर रिटर्न किया
रिस्पांस और वो भी जसन फॉर्मेट में। इसके
अंदर एक एरे पास कर दिया स्टेटस में लिख
दिया फॉल्स। क्योंकि इसका स्टेटस हो गया
फॉल्स। और यहां पे मैसेज भी डाल दिया कि
आपका यूजरनेम और पासवर्ड मैच नहीं हुए
हमारे रिकॉर्ड से। और यहां पर रिस्पांस
कोड भी दे दिया 401। जिसका मतलब है कि
आपकी जो ऑथेंटिकेशन का जो प्रोसेस था वह
फेल हो चुका है। आप एक अन ऑथराइज्ड यूजर
हैं। आप जरूरी नहीं कि 401 ही पास करेंगे।
यहां पर कोई और भी कोड पास कर सकते हैं जो
अभी मैं आपको आगे जाके डिटेल में समझाने
वाला हूं। तो इस तरह से मैंने यह लॉग इन
की अपनी एपीआई क्रिएट कर ली। अब जैसा कि
मैंने आपको बताया था कि यह जो टोकन होता
है यह अपने आप से डिलीट नहीं होता। अगर आप
इसे डिलीट करना चाहते हैं तो या तो आप इस
पे एक्सपाइरेशन का कोई कोड लगा सकते हैं
जिसमें आप टाइम सेट कर सकते हैं या फिर हम
इसे लॉगउ के टाइम पर डिलीट कर देते हैं।
जैसे हम सेशंस को डिलीट करते हैं। तो उसको
भी आइए समझते हैं। तो वो है हमारा फोर्थ
स्टेप जिसके अंदर हम क्या करेंगे? हम एक
मेथड बना लेते हैं अपनी यूजर कंट्रोलर
फाइल के अंदर जिसका नाम है लॉग आउट। और
इसके अंदर भी यूजर की रिक्वेस्ट आएगी। अब
इसके अंदर हमारे को सबसे पहला काम क्या
करना है? हमें यहां पर यूजर को यहां पर
डिटेक्ट करना है जिसने रिक्वेस्ट करी है
और टोकन को डिलीट करना है कुछ इस तरह से।
तो देखिए मैंने यहां पर लिया जिस यूजर की
भी यहां पर रिक्वेस्ट आई है उस यूजर को
यहां पर पिक कर लिया और उसी यूजर के अंदर
जाकर जो उसका टोकन क्रिएट हुआ हुआ था उसको
मैंने यहां पर डिलीट कर दिया। अब यह डिलीट
क्या करेगा? यह डाटाबेस के टेबल के अंदर
जाकर जहां पर भी हमारा टोकन सेव हुआ है,
उस टोकन को अपने आप से रिमूव कर देता है।
और जैसे ही यह टोकन रिमूव हो जाता है,
इसके बाद में भी हम यहां पर एज ए जसन
रिस्पांस सेंड करेंगे। कुछ इस तरह से। तो
देखिए, मैंने यहां पर लिखा रिस्पांस। किस
फॉर्मेट में? jसन फॉर्मेट में। इसके अंदर
एक एरे पास कर दिया। स्टेटस ट्रू यूजर की
इनेशन सेंड कर दी। यह जरूरी नहीं है सेंड
करना। अगर आप नहीं करना चाहते तो इस की को
हटा भी सकते हैं। और यह मैसेज भी जरूरी
नहीं है। अगर आप मैसेज दिखाना चाहते हैं
कि आप लॉगउ हो चुके हैं तो यह मैसेज भी आप
हटा सकते हैं। और इसके बाद यहां पर आप
रिस्पांस कोड सेंड कर देंगे कि आपने जो
रिक्वेस्ट करी थी उसका रिस्पांस
सक्सेसफुली अचीव हो चुका है। तो 200 का
मतलब होता है ओके। तो यहां पर हमने सीख
लिया कि कैसे हम अपनी खुद की एपीआई क्रिएट
करते हैं और उसको कैसे डिलीट करते हैं। अब
जो यह रिस्पांस कोड होता है आइए इसको मैं
आपको थोड़ा सा डिटेल में समझा देता हूं।
तो देखिए हमारे पास यहां पे कई तरीके के
रिस्पांस कोड्स आते हैं। तो उसमें सबसे
पहला आता है 200 जिसका मतलब होता है ओके।
मतलब कि जो सी भी आपने रिक्वेस्ट करी थी
उसको सक्सेसफुली एज अ रिस्पांस सेंड कर
दिया गया है। इसके बाद आता है यहां पर
2001। इसका मतलब होता है कि जो भी आपने
डाटा क्रिएट करने को बोला था, वह
सक्सेसफुली पोस्ट के मेथड से यहां पर
कंप्लीट हो चुका है। तो, यह हम बेसिकली
तभी यूज़ करते हैं जब हम एक नया डाटा ऐड
करते हैं या अपडेट करते हैं। इसके बाद एक
रिस्पांस कोड आता है 204। इसका यूज़
बेसिकली हम तब करते हैं जब हम डाटा को
डिलीट करते हैं। क्योंकि जब भी हम डाटा को
डिलीट करते हैं तो एज ए रिस्पांस कोई
मैसेज सेंड नहीं करते हैं। मतलब कि कोई
डाटा। तो उसके लिए हम यहां पर सेट कर देते
हैं 204 जिसका मतलब हमारा ब्राउज़र या फिर
हमारी मोबाइल ऐप खुद से ही समझ जाते हैं
कि कोई भी डाटा साथ में नहीं आया एज ए
रिस्पांस। एक कोड होता है 400 जिसका मतलब
होता है बैड रिक्वेस्ट। मतलब कि जो सी भी
आपने रिक्वेस्ट यहां पर सर्वर को सेंड की
है एज ए एपीआई वह एक बैड रिक्वेस्ट है। एक
होता है यहां पर 401 जिसका मतलब होता है
कि आपके ऑथेंटिकेशन जो है वह फेल हो चुकी
है। आपका यूजरनेम और पासवर्ड मैच नहीं हुआ
है। तो एज ए रिस्पांस हम यहां पे एक जो
मैसेज सेंड कर रहे हैं उसके साथ यहां पे
लिख देते हैं 401 जिससे हमारी मोबाइल ऐप
को या फिर रक्टस या व्यू js को यह पता लग
जाता है कि ऑथेंटिकेशन फेल हो चुकी है।
बिल्कुल ऐसे ही मैच करता हुआ एक कोड होता
है 403। इसका यूज़ हम तब करते हैं अगर यूजर
बिना लॉग इन हुए किसी ऐसे पेज की
रिक्वेस्ट करता है जो सिर्फ लॉगिन हुआ
यूजर ही देख सकता है। तब हम उसे यह वाला
मैसेज शो कर देते हैं 403। इसका मतलब होता
है कि आपको उस पेज का असेस नहीं है।
बिल्कुल ऐसे एक मैसेज होता है 404। इसका
यूज़ हम तब करते हैं अगर यूजर ने किसी ऐसे
पेज की रिक्वेस्ट की है जो हमारे सर्वर पे
नहीं है। मतलब कि किसी ऐसे एपीआई यूआरएल
का रिक्वेस्ट की है जो हमारे सर्वर पे
एग्ज़िस्ट ही नहीं करता। और लास्ट में
हमारा एक कोड है जिसका नंबर होता है 500।
यह सर्वर की बेसिकली एरर होती है। कई बार
क्या होता है? हमारा सर्वर शटडाउन हो जाता
है या हैंग हो जाता है। तो यूजर जो भी
रिक्वेस्ट कर रहा है एपीआई की वो सर्वर तक
पहुंच ही नहीं पाती है। वो फुलफिल ही नहीं
हो पाती। तो उस केस में सर्वर हमारे को एक
एरर मैसेज सेंड करता है 500 का। तो अगर हम
यह अपनी एपीआई के अंदर लगाना चाहते हैं
इसका कोई मैसेज शो करना चाहते हैं खुद से
तो हम वहां पर यह वाला कोड भी यूज़ कर सकते
हैं 500। तो ये थे कुछ कॉमन यूज़ होने वाले
कोड्स। इसके अलावा भी कहीं कोड्स आते हैं
जो आप नेट पे जाके चेक कर सकते हैं। अब
इसके बाद बात करते हैं जो हम इस वीडियो के
अंदर एक एपीआई का प्रोजेक्ट क्रिएट करने
वाले हैं। उसके अंदर हम क्या-क्या करने
वाले हैं? तो देखिए उसके लिए बेसिकली मैं
यहां पर दो कंट्रोलर की फाइल बनाऊंगा। आउट
कंट्रोलर और पोस्ट कंट्रोलर। सबसे पहले
आउट कंट्रोलर की बात करते हैं। उसके अंदर
मैं यहां पर तीन मेथड्स बनाने वाला हूं।
रजिस्ट्रेशन, लॉग इन, लॉग आउट। जिसमें
यूजर का रजिस्ट्रेशन कराया जाएगा। उसका
लॉग इन होगा और लॉग आउट होगा। लॉगिन के
टाइम पे हम यहां पर एक टोकन जनरेट करेंगे,
जिसको हम दूसरी कंट्रोलर फाइल के अंदर यूज़
करने वाले हैं जिसका नाम है पोस्ट
कंट्रोलर। तो, पोस्ट कंट्रोलर के अंदर हम
पोस्ट से रिलेटेड एक पूरा क्रूड सिस्टम
जनरेट करेंगे। जैसे कि हम रिसोर्स
कंट्रोलर के अंदर करते ही हैं। शो ऑल
पोस्ट, शो सिंगल पोस्ट, स्टोर पोस्ट,
अपडेट पोस्ट और डिलीट पोस्ट। तो इन सारे
मेथड को अगर यूजर असेस करना चाहता है, तो
उसे लॉग इन होना जरूरी है। और हम इन सारी
पोस्टों में जो यूजर ने लॉग इन के टाइम पे
टोकन जनरेट किया होगा, उसका यूज़ करेंगे
इसके अंदर। और इसी सेम प्रोजेक्ट के अंदर
आप एक स्पेशल चीज भी सीखने वाले हैं कि हम
कैसे एपीआई की हेल्प से इमेज को अपलोड कर
सकते हैं। मोस्टली स्टूडेंट्स की यह
रिक्वायरमेंट रहती है कि एपीआई की हेल्प
से हम कैसे इमेज को अपलोड करते हैं। तो वो
मैं इसी वीडियो के अंदर बताने वाला हूं।
तो आइए अब शुरू करते हैं प्रैक्टिकल।
तो देखिए प्रैक्टिकल को आगे शुरू करने से
पहले मैं आपको दिखाना चाहता हूं कि हमारा
ऑलरेडी इस पे कोर्स बना हुआ है एपीआई से
रिलेटेड पीएपी कोर्स के अंदर। तो यहां पे
हमारी एक सीरीज है। इसका लिंक भी आपको ऊपर
मिल जाएगा। यह है पीएp aक्स की सीरीज। इसी
के अंदर अगर आप थोड़ा सा स्क्रॉल करेंगे
तो यहां पर आपको टॉपिक दिखेगा jसन jसन और
उससे रिलेटेड एपीआई का कि एपीआई कैसे
क्रिएट करते हैं अगर आपको एपीआई के बारे
में बेसिक्स नहीं आता तो आप इस वीडियोस को
पहले देख सकते हैं जिससे आपको कंप्लीट
नॉलेज हो जाएगी कि एपीआई क्या होती है
json क्या होता है कैसे हम इसको अपने
प्रोजेक्ट के अंदर क्रिएट कर सकते हैं या
इसको यूज़ कर सकते हैं। इसके बाद मैं आपको
दिखाता हूं कि इस प्रोजेक्ट के अंदर जो हम
अपनी एपीआई को टेस्ट करने के लिए
सॉफ्टवेयर यूज़ करने वाले हैं, उसका नाम है
पोस्टमैन। तो, आप Google पे जाएंगे,
पोस्टमैन लिखेंगे, वेबसाइट ओपन हो जाएगी
postman.com।
यह देखिए, यह वही सॉफ्टवेयर है जिसको हमने
अपने पीएपी कोर्स के अंदर भी यूज़ किया था
एपीआई को टेस्ट करने के लिए। जब आप इसे
डाउनलोड करना चाहते हैं, तो आप यहां पे
जाएंगे प्रोडक्ट्स में और यहां पर आपको
लिंक दिखेगा डाउनलोड पोस्टमैन।
यह देखिए जैसे ही यह पेज ओपन होगा यह अपने
आप से ही डिटेक्ट कर लेगा कि आपने इसको
किस ऑपरेटिंग सिस्टम के अंदर ओपन किया है।
अगर आपने मैक में ओपन किया होगा तो यहां
पे लिखा आ जाएगा Mac। अभी मैं Windows का
यूजर हूं तो यहां पे आ गया Windows। आप
यहां से जाकर इसे डाउनलोड कर सकते हैं और
एपीएस को टेस्ट कर सकते हैं। आप इसका वेब
वर्जन भी यूज कर सकते हैं। अगर आप इसे
अपने सिस्टम पर इंस्टॉल नहीं करना चाहते
तो आप यह वर्जन भी यूज़ कर सकते हैं। मगर
मैंने इसे ऑलरेडी डाउनलोड करके रखा हुआ है
और इसे इंस्टॉल भी कर लिया है। इसकी
इंस्टॉलेशन का प्रोसेस बिल्कुल सिंपल है।
नेक्स्ट नेक्स्ट करके आप इसे इज़ली इंस्टॉल
कर सकते हैं। और जो भी हम इस वीडियो के
अंदर सीखने वाले हैं वो है STM एपीआई।
इसका लिंक भी आपको नीचे डिस्क्रिप्शन में
मिल जाएगा। आप इसको लार की डॉक्यूमेंटेशन
के अंदर जाकर भी चेक कर सकते हैं। यहां पर
आप देख सकते हैं कि यहां पर जब आप जाएंगे
पैकेजेस में तो इसके अंदर आपको एक लिंक
दिखेगा जिसका नाम है smt। अगर आप पासपोर्ट
लगाना चाहते हैं तो पासपोर्ट भी लगा सकते
हैं। इसका लिंक ऊपर है। तो यह देखिए यह sm
का लिंक है। जो भी हम इस वीडियो के अंदर
सीखने वाले हैं। वो सभी इस पेज के अंदर
डिफाइन किया हुआ है। इसमें कुछ एक्स्ट्रा
फीचर्स भी बताए गए हैं। जो हम इस वीडियो
के अंदर तो यूज़ नहीं करेंगे। मगर आप खुद
से भी पढ़कर उनको यूज कर सकते हैं। तो आइए
अब चलते हैं अपने एडिटर में। यह देखिए
यहां पर मैंने अपना एडिटर ओपन कर लिया
वीएस कोड और यहां पर अपना एक प्रोजेक्ट भी
बनाया है sm hfन एपीआई। अब इसके अंदर आकर
सबसे पहले हमारा काम क्या है? सबसे पहले
हम यहां पर फाइल ओपन करेंगे और अपने
डाटाबेस की सेटिंग कर लेंगे।
यह देखिए हम जो डाटाबेस यूज़ करने वाले
हैं, उसका नाम है माय सीक्वल।
और यह सब अनकमेंट हो रखा है। इसको मैं हटा
देता हूं। हमारे डाटाबेस का नाम रहेगा sm
hfन एपीआई और यूजरनेम रूट ही है। पासवर्ड
कुछ भी नहीं है मेरे केस में। आपके केस
में जो भी पासवर्ड होगा आप यहां पे सेट कर
लेंगे। और यहां पर सेशन ड्राइवर की जगह हम
यहां पे सेट कर देते हैं फाइल। यह देखिए।
यह सेटिंग हो जाने के बाद इस फाइल को सेव
करके आप क्लोज कर देंगे।
इसके बाद सबसे पहले मैं आपको काम दिखाता
हूं। यहां पर हम सबसे पहले एक डाटाबेस
क्रिएट करने वाले हैं। तो यहां पर मैं
जाता हूं डाटाबेस फोल्डर में माइग्रेशन
फोल्डर के अंदर और यहां पर तीन माइग्रेशन
की फाइल्स ऑलरेडी पड़ी हुई हैं। इसमें से
ये जॉब्स वाली जो फाइल है इसको मैं यहां
से रिमूव कर देता हूं।
यह हमारा यूज़र्स टेबल है। ये आप देख सकते
हैं।
अब यहां पर हमारी ये सारी फील्ड्स हैं।
नेम ईमेल ईमेल वेरीिफाइड पासवर्ड
रिमेंबर टोकन। इसमें से कुछ फील्ड्स मेरे
को नहीं चाहिए। मेरे को चाहिए सिर्फ नेम,
ईमेल, उसका यूनिक फॉर्मेट भी चाहिए। और
यहां पर जो यह ईमेल वेरीिफाइड है, इसको
मैं हटा देता हूं। पासवर्ड के बाद मुझे
टाइम स्टैंप चाहिए। यह रिमेंबर टोकन भी
मुझे नहीं चाहिए। यह देखिए। तो, यह काम
हमारा हो चुका है। यह रिसेट टोकन वाला
फीचर जो है, यह पूरा जो टेबल है, यह मैं
हटा देता हूं। मेरे को यह क्रिएट नहीं
करने हैं। सेशंस और पासवर्ड रिसेट टोकन।
यह देखिए। नीचे से जाके डाउन में भी यहां
पर जो यह पासवर्ड और रिसेट का मेथड लगा
हुआ है। ड्रॉप इफ एग्ज़िस्ट। इसको भी मैं
हटा देता हूं। यह देखिए। तो, यह मेरा पहली
फाइल बन जाएगी यूजर्स टेबल की। तो, इसको
मैंने यहां पर सेव कर लिया। इसी के साथ
मैं एक माइग्रेशन की फाइल और बना लेता
हूं। जिसका नाम मैं रखने वाला हूं पोस्ट।
तो, उसके लिए मैं टर्मिनल ओपन करता हूं।
और यहां पे कमांड लिख लेता हूं पीएp
आर्टिस मेक माइग्रेशन।
और टेबल का नाम रहेगा पोस्ट। तो मैं
लिखूंगा क्रिएट
पोस्ट टेबल।
यहां पर मैंने एंटर प्रेस किया और यह
हमारा माइग्रेशन की फाइल भी बन चुकी है
पोस्ट से रिलेटेड। तो उसको भी मैं ओपन कर
लेता हूं। अब यहां पर आकर मैं अपनी कुछ
फील्ड्स रख लेता हूं जो मुझे अपने डाटाबेस
में कॉलम्स बनाने हैं। तो एक फील्ड तो है
यहां पर आईडी। एक मैं यहां पर ले लेता हूं
टाइटल। तो उसकी डाटा टाइप है स्ट्रिंग।
ये पोस्ट का टाइटल रहेगा। इसी तरह मैं एक
डिस्क्रिप्शन ले लूंगा। इमेज और टाइम
स्टैंप। तो उनके नेम मैं यहां चेंज कर
लेता हूं।
डिस्क्रिप्शन में ज्यादा टेक्स्ट आने वाला
है। तो यहां पर मैं उसकी डाटा टाइप चेंज
कर देता हूं। टेक्स्ट और इसके बाद मैं
यहां पर इमेज लेने वाला हूं। तो इमेज की
डाटा टाइप रहेगी स्ट्रिंग। क्योंकि बस मैं
उसका यहां पर नेम स्टोर कराने वाला हूं।
और लास्ट में हमारा रहेगा टाइम स्टैंप। तो
इसकी जगह मैं नेम हटा देता हूं और यहां पर
लिख देता हूं। यह देखिए। तो यह काम भी
हमारा कंप्लीट हो चुका है। यहां पर इस
फाइल को मैं सेव करता हूं। और इन फाइल को
मैं सीधा से अभी माइग्रेट नहीं करूंगा।
इसके लिए सबसे पहले मैं यहां पर क्या करता
हूं? अपनी कमांड चलाता हूं। जिसकी हेल्प
से मैं यहां पर सटम पैकेज को इंस्टॉल करने
वाला हूं। तो उसके लिए मैं यहां पर
टर्मिनल ओपन कर रहा हूं। और यहां पर जाकर
एक कमांड लिखता हूं। पीएपी आर्टिसन
इंस्टॉल कॉलन एपीआई। यह कमांड क्या करेगी?
यह हमारे लार के जो प्रोजेक्ट है इसके
अंदर sm पैकेज को इंस्टॉल कर देगी। तो
यहां पर मैं एंटर प्रेस करता हूं।
तो देखिए यहां पर हमारा यह पैकेज जो है
इंस्टॉल हो चुका है। अब यहां पर यह लास्ट
में एक चीज कह रहा है आपकी डाटाबेस की
माइग्रेशन जो है वो पेंडिंग है। तो यहीं
से हम माइग्रेशन कर लेंगे। तो यहां पर मैं
लिख देता हूं यस। क्योंकि मैंने अपने
ऑलरेडी टेबल्स क्रिएट कर चुका हूं। जिनको
मैं इस प्रोजेक्ट में यूज़ करने वाला हूं।
तो यहां पर मैंने प्रेस किया एंटर। और यह
देखिए यहां पर हमारे टेबल भी क्रिएट हो
चुके हैं। एक यूज़र्स का टेबल है, कैशिंग
का टेबल है, पोस्ट का टेबल है और यह एक
अलग से भी टेबल बन चुका है। पर्सनल असेस
टोकन टेबल जिसको बेसिकली हमारा जो सटम का
पैकेज है वो यूज़ करने वाला है। इसी टेबल
के अंदर हमारे टोकंस भी सेव होंगे। तो अब
मैं आपको दिखाता हूं कि इस पैकेज ने हमारे
सिस्टम में क्या-क्या इंस्टॉल किया है।
सबसे पहले मैं आपको दिखाता हूं यहां पर जो
हमारा राउट्स फोल्डर है यहां पर एक फाइल आ
चुकी है जिसका नाम है एपीआई पीएp। यह फाइल
पहले से नहीं होती है। जैसे ही मैंने
कमांड चलाई है अपनी इंस्टॉल एपीआई की तभी
यह फाइल आई है। इसी के अंदर हम अपने एपीआई
से रिलेटेड सारे राउट्स बनाने वाले हैं।
और इसी के साथ यहां पर जो हमारा कॉन्फ़िग
फोल्डर होता है उसके अंदर भी एक फाइल आ
चुकी है जिसका नाम है यहां पे smp php जो
भी हमारे sm इंस्टॉल हुआ उसकी यहां पर
सारी सेटिंग्स हैं। इनको आप जाके चेंज भी
कर सकते हैं। यह देखिए यहां पर ये कुछ
सेटिंग्स हैं। आप इनके बारे में पढ़ सकते
हैं कि ये नीचे क्या चीज है। यह देखिए
यहां पर आ रहा है एक्सपायरेशन। बाय
डिफॉल्ट इसकी वैल्यू होती है नल। जिसका
मतलब है कि हमारा जो भी टोकन क्रिएट होगा
वह हमेशा क्रिएटेड ही रहेगा। अपने आप से
एक्सपायर नहीं होगा। अगर आप यहां पर कोई
टाइम सेट कर देते हैं या दिन बता देते हैं
या यहां पर कोई सर्कल डिफाइन कर देते हैं
कि 24 घंटे बाद तो उसी टाइम पे यहां पर
हमारा जो टोकन क्रिएट होगा एपीआई की हेल्प
से वह अपने आप से डिलीट हो जाएगा।
यहां पर कुछ और भी फीचर्स हैं। यहां पर आप
सब देख सकते हैं। इस फाइल को मैं क्लोज कर
देता हूं क्योंकि अभी हम इसका यूज नहीं कर
रहे हैं। अब मैंने आपको बताया था कि सबसे
पहला हमारा स्टेप होता है कि हम sm पैकेज
को इंस्टॉल करते हैं। उसके बाद जो हमारा
काम है वो है कि हम सबसे पहले अपनी यूजर
पीएp फाइल ओपन करेंगे जो हमने मॉडल्स
फोल्डर के अंदर बनाई हुई है। यह फाइल पहले
से ही होती है। हम खुद नहीं बनाते हैं। तो
हम इसी को यूज़ करने वाले हैं। यहां पर
सबसे पहले आके हमें क्या करना है? हमें
यहां पर sm का एक मेथड यूज़ करना है। हैज़
एपीआई टोकंस। तो उसको मैं यूज़ के अंदर ही
यहां पर लिखूंगा। तो यहीं पर मैं लिख लेता
हूं कॉमा#श
एपीआई टोकंस। यह देखिए जैसे ही मैं इस
लिंक पर क्लिक करूंगा तभी हमारी ऊपर फाइल
भी इंक्लूड हो जाएगी। अगर आपके केस में
नहीं हो रही है तो आप इसे मैनुअली भी लिख
सकते हैं। उसके बाद आप यूज़ में जाकर हैज़
एपीआई टोकन लिखेंगे। यह काम आपने सबसे
पहले कर लेना है। यहां पर कुछ और भी
फील्ड्स हैं। अगर आप चेंज करना चाहते हैं
वह कर सकते हैं। जैसे यह देखिए
जैसे हमने ये वाली फील्ड हटा दी है। तो
इसको मैं यहां से रिमूव कर देता हूं। और
जो भी हमारा पासवर्ड सेव होगा वो हैश
फॉर्मेट में होगा। तो इस फील्ड को आप लगे
रहने देना। यह कास्ट वेरिएबल है जिसका
यूज़ होता है कि हम यहीं पर पहले ही बता
देते हैं कि हमारी डाटाबेस में जो फील्ड
है उसके अंदर किस फॉर्मेट में डाटा सेव
होने वाला है। ये हम पिछली वीडियो में देख
चुके हैं ऑलरेडी। तो यहां पर सबसे पहले
हमारा काम था हमने इस#श एपीआई टोकन को यूज
करना है क्योंकि यही फाइल हमारे एपीआई के
अंदर टोकन को क्रिएट करने में हेल्प करने
वाली है। तो इस फाइल का काम इतना ही है।
इस फाइल को सेव करके मैं क्लोज कर देता
हूं।
अब जैसे हमारी ये यूजर की फाइल बन चुकी
है। अब मैं इसकी कंट्रोलर फाइल भी बना
लेता हूं। जिसके अंदर मैं यूजर का लॉग इन
रजिस्ट्रेशन और लॉग आउट करने वाला हूं। तो
उसके लिए मैं अपनी टर्मिनल को ओपन कर लेता
हूं। इसको क्लियर करता हूं। और यहां पर
कमांड लिखता हूं पीएp आर्टिसन मेक
कंट्रोलर
और कंट्रोलर जो है मैं यहां पर जहां हमारे
कंट्रोलर्स बनते हैं एचटीटीपी फोल्डर के
अंदर ये देखिए यहां पर यह एपीआई का
कंट्रोलर बना रहा हूं। तो इसके लिए मैं
फोल्डर ही अलग बना देता हूं। तो इसका नाम
मैं रखने वाला हूं एपीआई। एपीआई के अंदर
यह मैं कंट्रोलर बना रहा हूं। जिसकी फाइल
का नाम होगा आउट कंट्रोलर।
आप फाइल का नाम कुछ भी रख सकते हैं। तो यह
फाइल हमारी बन चुकी है। अब इसके बाद जो
हमारा दूसरा टेबल है पोस्ट उससे रिलेटेड
भी यहां पर मॉडल की फाइल और कंट्रोलर की
फाइल बना लेता हूं।
ये मैंने मॉडल की फाइल बना ली। इसके बाद
मैं इसकी कंट्रोलर फाइल भी बना लेता हूं।
यह भी मैं एपीआई फोल्डर के अंदर ही बना
रहा हूं। पोस्ट कंट्रोलर
और यहां पर यह मैं रिसोर्स कंट्रोलर बनाने
वाला हूं क्योंकि इसके अंदर हम बहुत सारे
काम करने वाले हैं। तो देखिए जब आप एपीआई
के अंदर रिसोर्स कंट्रोलर बनाते हैं तो
वहां पर हमें रिसोर्स लिखने की जरूरत नहीं
होती। जहां पर हम फ्लैग पास करते हैं हफन
हफन रिसोर्स या नॉर्मल आर भी लिख सकते
हैं। उसकी जगह पर मैं यहां पे लिखूंगा
एपीआई। इसका मतलब है यह एपीआई रिसोर्स
कंट्रोलर बनने वाला है। तो यहां पर मैं
एंटर प्रेस कर देता हूं। यह देखिए देखिए
जो यह फाइल है एपीआई पोस्ट कंट्रोलर यह
नॉर्मल रिसोर्स कंट्रोलर की तरह दिखती है।
इसमें कुछ भी चेंज नहीं होता है। बस हम
यहां पर स्टार्टिंग में बता देते हैं कि
यह एपीआई रिसोर्स कंट्रोलर है। तो इसके
लिए राउट भी अलग तरीके से बनता है। मैं
अभी आपको चेक कराऊंगा। अब यहां पर मैं
अपने सर्वर को भी ऑन कर देता हूं।
तो मैंने यहां पर कमांड लिख दी पीएp
आर्टिस।
यह देखिए। अब जो हमारी पोस्ट की यहां पर
मॉडल फाइल क्रिएट हुई है। यहां पर मैं
पहले से ही फील्ड को जो इसके अंदर मैंने
फील्ड्स ली है टाइटल और डिस्क्रिप्शन उसको
यहां पर पहले से ही बता देता हूं कि वो
गार्डेड नहीं है। तो उसके लिए मैं यहां पर
लिखूंगा प्रोटेक्टेड। यहां पर मैं वेरिएबल
यूज़ कर रहा हूं फी लेबल।
आप यहां पर दूसरा वेरिएबल भी यूज़ कर सकते
हैं गार्डेड नाम से। फी लेबल के अंदर जस्ट
जाके आपको बताना होता है कि किस-किस
फील्ड्स की वैल्यू यूजर खुद से डाल सकता
है और अपडेट कर सकता है। तो इसके अंदर मैं
एरे ले लेता हूं। और पहली फील्ड है हमारी
टाइटल और इसी के साथ दूसरी फील्ड है
डिस्क्रिप्शन।
यह देखिए। तो यह काम भी हमारा कंप्लीट हो
चुका है। इस फाइल को मैं सेव कर लेता हूं।
यहां पर आपको कोई हैश टोकन नाम की फील्ड
को इंक्लूड नहीं करना। जैसे हमने यूजर
वाली मॉडल फाइल के अंदर किया था। तो इस
फाइल को मैं क्लोज़ करता हूं। अब इसके बाद
सबसे पहले हम काम शुरू करते हैं अपने
रजिस्ट्रेशन से, लॉग इन से और लॉगउ से। तो
उसके लिए मैं अपने ऐप फोल्डर के अंदर
जाऊंगा एपीआई फोल्डर के अंदर। और यहां पर
हमारे पास एक फाइल आ चुकी है जिसका नाम है
आउट कंट्रोलर। इसी के अंदर मैं अपने तीन
मेथड्स बनाने वाला हूं। तो सबसे पहला जो
मेथड है उसका नाम रहेगा साइन अप
और इसके अंदर मैं फॉर्म की रिक्वेस्ट
डालने वाला हूं।
यह देखिए बिल्कुल इसी को कॉपी करके मैं
अपना लॉग इन और लॉगउ भी बना लेता हूं।
यह देखिए ये तीनों मेथड्स बन चुके हैं। अब
इनके अंदर आकर मुझे कोड करना है। सबसे
पहले मैं यूजर से रजिस्ट्रेशन करवाना
चाहता हूं। तो उसके लिए मैंने फील्ड्स
अपने डाटाबेस में ऑलरेडी क्रिएट करके रखी
हैं। तो यहां पर अब मैं क्या करने वाला
हूं? यहां पर सबसे पहले मैं एक वैलिडेट
करूंगा अपनी फील्ड्स को। जो भी यूजर यहां
पर फॉर्म के अंदर सेट करेगा उसको मुझे
वैलिडेट करना है। तो वैलिडेट करने के लिए
सबसे पहले हम जैसे पिछली वीडियोस में यूज़
करते आए हैं वैलिडेट मेथड। उसको यूज़ नहीं
कर रहे हैं। वो मेथड बेसिकली क्या करता
है? अपने आप से ही वैलिडेट कर देता है। हम
यहां पर एक दूसरा मेथड यूज़ करने वाले हैं
जिसका नाम होता है वैलिडेटर। यह मेथड
हमारे को कुछ एक्स्ट्रा फंक्शनैलिटीज भी
देता है जो हम आगे देखने वाले हैं। तो
सबसे पहले मैं वैलिडेट कर लेता हूं।
यह देखिए जैसे ही मैंने यहां पर लिखा
वैलिडेटर। यहां पर हमारे को इस क्लास को
इंक्लूड करना है जो है इस फोल्डर में
एलुमिनेट स्पोर्ट फैसेट्स। मैंने इस पे
क्लिक किया। यह देखिए क्लास ऊपर इंक्लूड
हो चुकी है। अगर आपके केस में नहीं हो रही
है तो आप इसे मैनुअली भी लिख सकते हैं।
इसके बाद यहां पर मैं लिखूंगा मेक। देखिए
जो इसके अंदर मेक मेथड होता है इसका यूज़
हम तब करते हैं जब हमें फील्ड्स को जो
हमारी फॉर्म्स की फील्ड हैं जो हमारे को
रिक्वेस्ट से मिलेंगी उसको वैलिडेट करना
हो। तो इसके अंदर बेसिकली दो पैरामीटर्स
आते हैं। सबसे पहले हम इसमें फॉर्म का
सारा डाटा डालते हैं और उसके सेकंड
पैरामीटर में हम जो भी फील्ड्स हैं उसमें
जो से भी हमारे को वैलिडेशन के पैरामीटर
पास करने हैं वो करते हैं। तो देखिए मैं
यहां पर एंटर लगाता हूं और सबसे पहले यहां
पर अपनी फॉर्म की सारी फील्ड डाल देता
हूं। तो जो भी हमारे को रिक्वेस्ट से मिला
है मैंने उसको लगा दिया ऑल। इसका मतलब
फॉर्म की सारी फील्ड्स आ चुकी हैं। अब
सेकंड पैरामीटर में हमें सारे रूल्स ही
डिफाइन करने हैं वैलिडेशन के। जैसे हम
नॉर्मल वैलिडेट मेथड के अंदर करते हैं।
यह देखिए यहां पर मैंने क्या किया? मैंने
यहां पर सारी फील्ड्स ले ली है। नेम, ईमेल
और पासवर्ड और सब में डाल दिया
रिक्वायर्ड। सारी फील्ड्स को डालना जरूरी
है। जब भी फॉर्म रजिस्टर कर रहा होगा
यूजर। उसके अलावा मैंने यहां पे क्या किया
है? यहां पर जो हमारा ईमेल वाला फॉर्मेट
है उसमें पास कर दिए ईमेल। मतलब कि वो
प्रॉपर ईमेल होनी चाहिए। और यहां पे पास
किया यूनिक। यूनिक के अंदर हम बेसिकली दो
पैरामीटर्स देते हैं। मतलब कि वैल्यूज़।
पहला होता है हमारे टेबल का नाम। तो हमारे
टेबल का नाम है यूज़र्स। उसके अंदर जो
फील्ड है उसका नाम है ईमेल। तो जो भी यूजर
ईमेल डालेगा तो यह मेथड क्या करेगा?
बेसिकली यह चेक करेगा कि पहले किसी यूजर
ने वो ईमेल तो नहीं डाली हुई। अगर डाली
हुई है तो यह एक एरर मैसेज दे देता है। और
अगर वो फील्ड नहीं डाल रखी तो हमारा पेज
वैलिडेट हो जाएगा। अब इसके बाद हम आगे का
कोड करते हैं।
अब देखिए सबसे पहले हमारे को यहां पे क्या
करना है? जब हम एपीआई के अंदर काम करते
हैं, मतलब कि यहां पर हम एक एपीआई बना रहे
हैं। यह एपीआई से फॉर्म का हम रजिस्ट्रेशन
करवाएंगे। तो अगर यह यहां पर एरर आ जाता
है वैलिडेशन में तो उसका रिस्पांस भी
हमारे को यहां पर एज अ JSON फॉर्मेट में
सेंड करना है। तो वो हम कैसे करेंगे? तो
यहां पर मैं चेक करूंगा कि जो हमारा यह
वेरिएबल है, इसके अंदर कहीं एरर तो नहीं
आई है। तो देखिए, जैसे मैंने यहां पर
वैलिडेटर मेथड यूज़ किया था। उसका बेसिकली
यूज़ अब होगा। इसके अंदर कुछ इनबिल्ट मेथड
आते हैं जैसे फेल, सक्सेस वगैरह। तो, यहां
पर हम चेक करें क्या इसकी वैल्यू फेल तो
नहीं हुई है? तो इसका मेथड है फेल्स। अगर
यह फेल हो गई है, तब यह इस इफ स्टेटमेंट
के अंदर आ जाएगा और यहां पर आकर हम एक
रिस्पांस सेंड करेंगे।
यह देखिए, यह जो रिस्पांस मैं सेंड कर रहा
हूं, इसको मैं जेसन फॉर्मेट में करूंगा।
तो, सबसे पहले पैरामीटर में यहां पर मैं
जो भी वैल्यू सेंड करना चाहता हूं, उसको
एरे की फॉर्म में लूंगा। और इसके बाद मैं
यहां पर एक रिस्पांस कोड भी भेजूंगा। तो
देखिए जैसे यहां पर यूजर ऑथेंटिकेट नहीं
हो पाया तो उसका यहां पर कोड होता है 401
जैसा कि मैंने अभी आपको स्लाइड्स में भी
दिखाया था। तो मैं इस एरे के अंदर आकर
अपनी मल्टीपल कीज़ ले लेता हूं जो मैं यूजर
को एज ए रिस्पांस सेंड करना चाहता हूं। तो
सबसे पहले मैं उसको एक स्टेटस भेजूंगा।
जिसका वैल्यू होगी फॉल्स। फिर मैं यहां पर
उसको एक मैसेज भी भेजना चाहता हूं।
मैंने यहां पर लिख दिया वैलिडेशन एरर।
इसके बाद जो हमारे को लाराव यहां पर एरर
के एग्जैक्ट एरर कोड देता है, उसको भी मैं
यूजर को सेंड करना चाहता हूं। उसके लिए
मैं यहां पर एक अलग से एक की ले लेता हूं
एर्स करके।
और जो भी हमारे पास एरर्स आए हैं इसमें
उसको मैं यूजर को सेंड करूंगा। और कितने
एरर्स? सारे एरर्स। तो उसके लिए मैं यहां
लिख देता हूं ऑल। ये देखिए। देखिए जितनी
भी मैंने यहां पर कीज़ लिए हैं, ये लेना
जरूरी नहीं है। मगर मैं यूजर को एक प्रॉपर
मैसेज सेंड करना चाहता हूं। तो उसके लिए
मैंने स्टेटस दिए यहां पर फॉल्स जिसको यूज़
करके वह यूजर आगे कोड में अपना कोई भी कोड
करना चाहता है या कंडीशन चेक करना चाहता
है वह कर सकता है। इसके साथ मैंने एक
मैसेज भेजा है। यह मैसेज भी भेजना जरूरी
नहीं है। अगर आप भेज देंगे तो उसको
एग्जैक्ट एरर पता लग जाएगा। और जो लारावल
एग्जैक्ट एरर बताएगा वो हमने यहां से सेंड
कर दिए और साथ में इसका एक एरर कोड भी
भेजा है। और अगर वह यूजर जो है ऑथेंटिकेशन
पास कर देता है। इस फेल में आता ही नहीं
है। तो हम यहां पर उसका सारा डाटा यूज़र्स
टेबल के अंदर सेव कर देंगे। तो उसके लिए
मैं यहां पर अपना एलुकेंट का ही मेथड यूज
करने वाला हूं।
यह देखिए यहां पर मैंने अपनी सारी फील्ड्स
ले ली है। नेम, ईमेल और पासवर्ड और जो भी
फॉर्म से डाटा आया वो मैंने इसमें सेव करा
दिया। यहां पे एक एरर आ रहा है कि यूजर
मॉडल फाइल के अंदर। ये इंक्लूड नहीं किया
मैंने। मैं राइट क्लिक करता हूं और यहां
पर इंपोर्ट क्लास कर लेता हूं। ऊपर दिखा
रहा है आपको। यहां पर मैं ऐप मॉडल यूजर
फाइल को इंक्लूड कर रहा हूं। यह देखिए। यह
ऊपर इंक्लूड हो गई है। अगर आपके केस में
नहीं हो रही है तो आप इसे मैनुअली भी लिख
सकते हैं।
अब इसके बाद जैसे ही यह डाटा क्रिएट हो
जाएगा तो मुझे यूजर को एज ए रिस्पांस
बताना भी है कि आपका डाटा सक्सेसफुली
डाटाबेस में क्रिएट हो चुका है। तो उसके
लिए भी यहां पर मैं एक jसन फॉर्मेट ही
सेंड करने वाला हूं। तो मैं ऊपर वाला ही
कोड कॉपी कर लेता हूं। यह रिस्पांस वाला
जो रिटर्न आपने किया था इसको यहां से
रिटर्न कर दूंगा। अब यहां पर मुझे स्टेटस
में वैल्यू चेंज कर देनी है। ट्रू और
मैसेज चेंज कर देना है।
और यहां पर कोई एरर नहीं आएगा। तो यहां पर
मैं एक की ले रहा हूं यूजर जिससे मैं यूजर
का सारा डाटा सेंड कर दूंगा यूजर को जो हम
आगे यूज़ कर सकते हैं अपने पेजेस में। और
यहां पे जो रिस्पांस कोड रहेगा वो है 200।
जिसका मतलब जो यूजर ने रिक्वेस्ट करी थी
डाटा को सेव करने के लिए वो सक्सेसफुली
पूरी हो चुकी है। 200 का मतलब है ओके। तो
यह देखिए यह हमारा कोड हुआ है। सबसे पहले
हमने क्या किया? सबसे पहले हमने यहां पर
वैलिडेट किया अपने डाटा को जो भी यूजर ने
फॉर्म से सेट किया होगा और इसके लिए मैंने
अलग से एक मेथड यूज़ किया है वैलिडेटर
जिसके अंदर मेथड होता है मेक। यह हमने
पिछली वीडियोस में यूज़ नहीं किया था। यह
बेसिकली मेथड हमारे को एक स्पेशल
फंक्शनैलिटी देता है चेक करने के लिए जो
हमने आगे चेक की फेल्स या सक्सेस ऐसी
कंडीशंस भी हम इस पे चेक कर सकते हैं।
इसके अंदर हमने सबसे पहले वैलिडेट किया
है। अगर यह वैलिडेशन फेल हो जाती है तब भी
हमने रिस्पांस सेंड किया है JSN फॉर्मेट
में क्योंकि यह एपीआई का कोड है और इसके
बाद अगर यूजर का डाटा क्रिएट हो जाता है
डाटाबेस में तब भी हमने यहां पर एज़ ए
रिस्पांस JSN का डाटा यूजर को सेंड किया
है। अब इसके बाद हम फटाफट यहां पर लॉग इन
और लॉगउ का कोड भी कर लेते हैं। तो उसके
लिए सबसे पहले मेरे को क्या करना है? जब
यूजर यहां पर लॉग इन के लिए रिक्वेस्ट के
लिए एंटर करेगा तो यहां पर हमारे पास
फॉर्म का डाटा आएगा यूजरनेम और उसका
पासवर्ड उसको हमें वैलिडेट करना है। तो
मैं ऊपर वाला ही कोड चेक कर लेता हूं। यह
देखिए यहां पर मैं इसी कोड को कॉपी कर रहा
हूं।
अब इसके बाद देखिए हम सारे डाटा को यहां
पे चेक कर रहे हैं। तो हमारे पास यहां पे
दो चीजें आएंगी ईमेल और उसका पासवर्ड। और
यहां पर मुझे बस ईमेल चेक करवानी है। यह
देखिए।
अब अगर यह ऑथेंटिकेशन फेल हो जाती है मतलब
कि उसका यूजरनेम और पासवर्ड मैच नहीं करता
तब हम उसे एक एरर का मैसेज सेंड करेंगे।
तो मैसेज मैं ऊपर से ही कॉपी कर लेता हूं।
जैसे हमने यहां पे किया था।
यहां पर मैं लिख देता हूं ऑथेंटिकेशन फेल।
आप यहां पे कोई और मैसेज भी सेट कर सकते
हैं। या यूजरनेम और पासवर्ड मैच नहीं हुए
हैं उसको दिखाने के लिए। और लास्ट में जो
भी लारावल हमारे को एरर दे रहा है वह
हमारे को यहां से एज ए सेंड कर देने हैं
एरर्स नाम की की के अंदर और यहां पर हम
कोड भी चेंज कर सकते हैं। आपकी मर्जी है।
मैं अभी के लिए यहां पर कर देता हूं 404।
आप इसे 401 भी सेट कर सकते हैं। इसके बाद
हमारा मेन काम आता है। अगर यह वैलिडेशन
चेक हो चुकी है। उसका यूजरनेम और पासवर्ड
यूजरनेम ठीक से डाला है। उसके बाद हम यहां
पे क्या करेंगे? यहां पर हम इसे डाटाबेस
में जाके चेक करेंगे। तो उसके लिए मैं
ऑथेंटिकेशन मेथड का यूज़ करने वाला हूं।
अटेमप्ट मेथड का। तो मैं यहां पर आउट मेथड
यूज कर रहा हूं। तो देखिए ऊपर क्लास भी
इंक्लूड हो गई होगी। यह देखिए अगर आपके
केस में नहीं हो रही है तो आप इसे मैनुअली
भी लिख सकते हैं। अब इसका मैं एक इनबिल्ट
मेथड यूज़ करूंगा जिसका नाम होता है
अटेम्प्ट जो ये चेक करता है कि हमारा
यूजरनेम और पासवर्ड मैच हो रहा है कि नहीं
डाटाबेस में। तो हमारी बेसिकली दो फील्ड्स
हैं ईमेल और पासवर्ड। तो मुझे उसे एरे की
फॉर्मेट में यहां पर सेंड करना है।
यह देखिए। यहां पर मैंने चेक कर लिया अपनी
ईमेल को और पासवर्ड को। यहां पर मैंने
फॉर्म की फील्ड को यहां पे सेट किया है।
अब अगर ये अटेम्प्ट पास हो जाता है तब
मुझे यहां पे क्या करना है? यहां पर मैं
एक एल्स पार्ट भी बना लेता हूं। अगर
यूजरनेम और पासवर्ड फेल हो जाता है तब
यहां पे क्या करना है? तो सबसे पहले मैं
यहां पर क्या करता हूं? यहां पर यूजर को
एज अ रिस्पांस मुझे सक्सेस का एक रिस्पांस
सेंड करना है। तो उसके लिए मैं ऊपर से ही
कॉपी कर लेता हूं। जैसे मैंने यहां पर
बनाया था सक्सेस के लिए। यह देखिए।
यहां पर मैं लिख देता हूं यूजर लॉक्ड इन
सक्सेसफुली।
अब जब यह मैं मैसेज सेंड कर रहा हूं तो
यहीं पर मैं अपना टोकन जनरेट करूंगा जो
सटम का मेन पार्ट है। तो यहां पर मैं की
ले लेता हूं टोकन। आप नेम कुछ भी रख सकते
हैं। मैं टोकन नहीं रख रहा हूं। अब सबसे
पहले जो यूजर ने यहां पर लॉगिन किया है
उसकी मेरे को यहां पर उसका डाटा चाहिए। तो
उसके लिए मैं यहां पर क्या करता हूं? एक
यूजर करके एक वेरिएबल बना रहा हूं। आउट
यूजर ले लेता हूं बेसिकली।
यह देखिए जो भी यूजर लॉग इन हो जाएगा मैं
इसको बेसिकली इफ कंडीशन के अंदर डालता हूं
क्योंकि लॉग इन पहले मैं यहां पर चेक
करूंगा। यह देखिए। तो उसकी सारी
इंफॉर्मेशन यूजर नाम के हमारे पास मेथड के
अंदर इस वेरिएबल के अंदर पास हो जाएगी। अब
इसी वेरिएबल का मैं यूज़ यहां पे कर लेता
हूं।
अब यहां पर मेरे को टोकन क्रिएट करना है।
तो उसके लिए सटम का एक मेथड आता है क्रिएट
टोकन। तो मैं इसी यूजर के लिए टोकन क्रिएट
कर रहा हूं।
यह देखिए। क्रिएट टोकन करने के बाद यहां
पर आपको एक की का नाम लेना है। आप नेम कुछ
भी रख सकते हैं। मैं इसको समझने के लिए
यहां पर लिख देता हूं एपीआई टोकन।
आप यहां पे जो भी नाम रखना चाहते हैं वो
रख सकते हैं। देखिए यहां पर एक रेड कलर का
एरर मैसेज यहां पे आपको दिखा रहा है। यह
एरर शो होता रहेगा। यह बेसिकली कोई एरर
नहीं है। इसको यह फाइल मिल नहीं रही है।
तभी यह एरर शो कर रहा है। मगर यह कोई एरर
नहीं है। इसके बाद यह टोकन जो आप सेव
करवाने वाले हो डाटाबेस में इसको किस
फॉर्मेट में कराना है? तो उस फॉर्मेट को
बेसिकली मैं यहां पर प्लेन टेक्स्ट में
यहां पर सेव करवाने वाला हूं।
यह देखिए। तो यहां पर सबसे पहले मैंने
यूजर उठाया कि किस यूजर का मेरे को टोकन
क्रिएट करना है। यहां पर मैंने टोकन
क्रिएट किया है। उसकी की का नाम यह रख
दिया और यहां पर एक टोकन क्रिएट होगा
रैंडम्स नंबर का जो इस की के अंदर आके सेव
हो जाएगा डाटाबेस के अंदर। तो यहां पर मैं
आता हूं। अब मेरे को यहां पे यह बताना है
कि जो टोकन है उसकी टाइप क्या है? और स
में मैंने आपको बताया था जो टाइप होती है
वह होती है बी एरर।
यह देखिए। तो, जब यूजर लॉग इन होगा और
उसका सक्सेसफुली अटेम्प्ट क्लियर हो जाता
है, तब यहां पर हम यह रिस्पांस यूजर को
सेंड करेंगे। यह टोकन बाद में यूजर जो है
अपने कंप्यूटर में कहीं पर भी सेव कर सकता
है। कुकीज़ की हेल्प से, सेशन की हेल्प से
या फिर लोकल स्टोरेज की हेल्प से। यह हम
नेक्स्ट वीडियो में करना सीखेंगे। और यहां
पर हम एल्स पार्ट के अंदर आते हैं। अगर यह
ऑथेंटिकेशन फेल हो जाती है, तब हमें यहां
पे क्या करना है? तो मैं ऊपर से फेल वाला
ही यह कोड कॉपी कर लेता हूं। रिस्पांस कोड
और इसको एल्स पार्ट में डाल देता हूं। यह
देखिए। अब यहां पर स्टेटस आ जाएगा फेल।
यहां पर मैसेज आ जाएगा। ईमेल एंड पासवर्ड
नॉट मैच्ड। या कुछ और मैसेज दिखाना चाहते
हैं वो भी दिखा सकते हैं। और यह एरर की अब
कोई जरूरत नहीं है। क्योंकि यहां पर लाराव
का कोई एरर नहीं आने वाला। यह डाटाबेस में
मैच नहीं हुआ है। हमारे को खुद को ही
मैसेज दिखाना है। और यहां पर मैं लिख देता
हूं जैसे 401
तो यह मेरा लॉगिन से रिलेटेड सारा काम हो
चुका है। सबसे पहले मैंने इसको वैलिडेट
किया है। अगर यह वैलिडेशन फेल हो जाती है
तब मैं एक रिस्पांस सेंड करूंगा फेलियर का
और अगर यह ऑथेंटिकेशन में चेक करके पास हो
जाता है तब मैं एक रिस्पांस सेंड करूंगा
जिसके अंदर मैं टोकन भी जनरेट कर रहा हूं।
यह डाटाबेस में भी क्रिएट हो जाएगा और
यूजर को सेंड भी हो जाएगा जेसन फॉर्मेट के
अंदर। और इसके बाद अगर यह फेल हो जाती है
ऑथेंटिकेशन तो यहां पर यह एरर का मैसेज भी
यूजर को शो हो जाएगा। यह भी jसन फॉर्मेट
में होगा क्योंकि हम सारा एपीएस बना रहे
हैं। तो एपीएस में जो भी डाटा यूजर को
रिटर्न करते हैं वो नॉर्मल फॉर्मेट नहीं
होता है। या तो वो jसन होता है XML या फिर
ग्राफकल। अब लास्ट में हमारा काम रह गया
लॉगउ का। तो उसका कोड भी मैं कर लेता हूं।
मैंने लिया यूजर और जो भी हमारा
रिक्वेस्टेड यूजर है
इस यूजर का मुझे टोकन को डिलीट करना है।
तो मैं लिखूंगा यूजर टोकन। तो इस यूजर के
जितने भी टोकंस होंगे उन सबको मैं रिमूव
कर रहा हूं।
यह देखिए यह डाटाबेस में से जाकर ये इस
यूजर के जिसने लॉगिन किया हुआ है उसके
सारे टोकन को रिमूव कर देगा। और लास्ट में
यहां पर यह एज ए रिस्पांस एक सक्सेस का
मैसेज भी सेंड करेगा। तो मैं इसी कोड को
कॉपी कर लेता हूं
और यहां पर जो यह टोकन बनाए थे इनको मैं
यहां से हटा देता हूं। इसकी कोई जरूरत
नहीं है यहां पर और यहां लिख देता हूं यू
लॉक्ड आउट सक्सेसफुली।
यह देखिए आप अपना कोई भी मैसेज सेट कर
सकते हो यहां पर और साथ में अगर मुझे यूजर
की कोई इनेशन वगैरह सेंड करनी है वो भी
मैं सेंड कर सकता हूं। तो मैं एक यूजर नाम
की की ले लेता हूं।
और जो भी मेरे पास यूजर की इंफॉर्मेशन है
जो मुझे यहां से मिली है वह मैं यूजर को
लास्ट में यहां से सेट कर सकता हूं। यह
जरूरी नहीं है इसको सेंड करना। आप इसे हटा
भी सकते हैं। तो यह हमारी एपीआई पूरी इस
आउट कंट्रोलर की बन चुकी है जिसके अंदर
मैंने लॉग इन, लॉगउ और रजिस्ट्रेशन तीनों
की एपीआई क्रिएट कर ली हैं। अब इसके बाद
मैं आपको इन एपीआई को चेक करने के लिए
इसका राउट भी क्रिएट करके दिखाता हूं। तो
इसका राउट थोड़ा सा अलग तरीके से बनेगा।
देखिए इसके लिए हम राउट फोल्डर के अंदर
जाएंगे। पहले हम यूज़ करते थे वेब php। अब
हम एपीआई के लिए राउट बना रहे हैं। तो
इसके लिए हम यूज़ करेंगे एपीआई.php
और यहां पर जाकर मैं अपना राउट क्रिएट
करने वाला हूं। तो सबसे पहले मैं लॉग इन
और साइन अप दोनों के लिए यहां पर राउट
क्रिएट कर लेता हूं। तो देखिए मैं इसको
यहां से रिमूव कर देता हूं। और यहां पे
लिखता हूं पोस्ट। तो सबसे पहले मैं अपने
राउट का नाम लिख रहा हूं। यहां पे साइन
अप। जो साइन अप के केस में हम यूज़ करेंगे।
और इसके अंदर हम कौन सा कंट्रोलर यूज़ करने
वाले हैं, उसका नाम है आउट कंट्रोलर। यह
देखिए, मैंने इस पे क्लिक किया। यहां पर
आप देख सकते हैं कि ऊपर फाइल भी इंक्लूड
हो चुकी है। अगर आपके केस में नहीं हो रही
है तो आप इसे मैनुअली भी लिख सकते हैं।
इसके बाद आप यहां लिखेंगे क्लास और इसके
बाद यहां पर कौन सा मेथड उस मेथड का नाम
जो मैंने इस कंट्रोलर फाइल के अंदर बनाया
उसका नाम भी मैंने रखा था साइन अप। अब इसी
तरह मैं इसकी दो डुप्लीकेट कॉपी कर लेता
हूं। एक लॉगउ के लिए एक साइन इन के लिए।
तो यहां पर मैं बनाता हूं लॉग इन और मेथड
का नाम है यहां पर लॉग इन।
इसके बाद लॉग आउट के लिए और लॉग आउट के
लिए मैंने यहां पर मेथड बनाया था लॉग आउट।
यह तीनों मेथड्स मैंने अपनी कंट्रोलर फाइल
के अंदर बनाए हैं जिसका नाम है आउट
कंट्रोलर। अब देखिए यूजर जब यह लॉगउ करने
लगेगा तो सिंपली लॉगउ नहीं कर सकता। पहले
हम यह चेक करेंगे कि या वो लॉगिन है कि
नहीं। तो उसके लिए हम टोकन को चेक करेंगे।
तो टोकन चेक होता है सटम मेथड से। तो उसके
लिए हम इसके अंदर मिडिल वेयर पास करेंगे
लास्ट में
और इसके अंदर पास कर दूंगा मैं आउट। आउट
बेसिकली चेक करता है जैसे हम पिछली
वीडियोस में देख चुके हैं यूजर
ऑथेंटिकेटेड है कि नहीं। और ऑथेंटिकेशन हम
कैसे चेक कर रहे हैं? सटम मेथड की हेल्प
से। तो उसके लिए मैं यहां पर कॉलन लगाऊंगा
और यहां पे लिख दूंगा सtम।
यह देखिए। तो लॉगउ आप तभी कर सकते हो अगर
आप लॉगिन हो। तो यह पहले चेक करेगा तभी आप
लॉगउ हो सकते हो। और यह मैंने लॉग इन और
साइन अप के लिए बना दिया। अब इसको चेक
करने के लिए मैं इस फाइल को पहले सेव करता
हूं और ओपन करता हूं अपना पोस्टमैन नाम का
सॉफ्टवेयर।
तो यहां पर देखिए मैंने अपना पोस्टमैन नाम
का सॉफ्टवेयर ओपन कर लिया है। यहां पर
सबसे पहले आके आपको क्या करना है? देखिए
यहां पर मैंने ऑलरेडी इस पे लॉग इन कर रखा
है इनकी वेबसाइट पे। तो आप यहां पर लॉग इन
कर लेना क्योंकि लॉग इन होने के बाद इसके
कुछ एडवांस फीचर्स हैं वह आप तभी यूज कर
सकते हैं। तो जब से ही आप इसे लॉग इन कर
लेंगे इनकी वेबसाइट पर जाकर रजिस्टर करके
तो यहां पर आपको प्लस पे क्लिक करना है।
तो देखिए इस तरह से आपके पास अनटाइटल
रिक्वेस्ट आ जाएगी। अभी यह रिक्वेस्ट हम
सेव भी कर सकते हैं। यहां पर सेव का बटन
भी होता है। मगर अभी मैं इसे सेव नहीं कर
रहा हूं। तो यहां पर हमें सबसे पहले क्या
करना है? यहां पर चेंज कर लेना है पोस्ट।
यहां पर देखिए सारे एचtटीp के सारे मेथड्स
आ रहे हैं। पोस्ट पे मैंने यहां पर क्लिक
किया और यहां पर सबसे पहले मैं साइन अप
करने वाला हूं। तो यहां पर मैं अपना पूरा
यूआरएल दे देता हूं अपने प्रोजेक्ट का।
यह देखिए मैंने यहां पर लिखा http कॉलन
लोकल होस्ट फिर उसका पोर्ट नंबर क्योंकि
अभी मैं लोकल होस्ट पे काम कर रहा हूं।
अगर आप किसी लाइव सर्वर पर काम कर रहे
होंगे तो वहां पर उस वेबसाइट का नाम आएगा
जहां पर आपकी एपीआई पड़ी हुई है। तो हमारी
एपीआई के लिए अब यहां पर हम क्या लिखेंगे?
अगर आपने एपीआई पीएp फाइल के अंदर अपनी
एपीआई का राउट बनाया तो आप यहां पे
लिखेंगे एपीआई। उसके बाद आप यहां पे
लिखेंगे साइन अप जो भी आपके राउट का नाम
है। अब इसके अंदर हम यहां पर फॉर्म को सेव
करने वाले हैं। जैसा कि मैं यहां पर कर
चुका हूं। यह देखिए साइन अप वाले पेज में
हम इन तीन फील्ड्स को सेव करवाने वाले
हैं। नेम, ईमेल और पासवर्ड। तो अभी हमने
कोई HTML का फॉर्म तो नहीं बनाया। तो मैं
यहीं पर इसका यूज करने वाला हूं। तो सबसे
पहले मुझे क्या करना है? यहां पर जाना है
अपने बॉडी में और बॉडी के अंदर मैं यहां
पर फॉर्म डाटा को यूज़ करूंगा। क्योंकि
एक्चुअल लाइफ में मैं इसे एज ए फॉर्म के
डाटा के साथ सेव करने वाला हूं। तो इसलिए
मैं यहां पर क्लिक करता हूं फॉर्म डाटा।
और यहां पर मैं अपनी फील्ड्स ले लेता हूं।
नेम, ईमेल और पासवर्ड। यह देखिए नेम हो
गया।
और यह हो गया पासवर्ड। अब इन तीनों की
वैल्यूज़ मैं इसके बिल्कुल सामने पैरेलल
में जो वैल्यूज़ नाम का कॉलम है उसमें डाल
दूंगा। तो मैं एक यूजर ले लेता हूं जैसे
Yahoo baba
और इसका एक ईमेल बना लेता हूं जिसको मैं
एपीआई के अंदर यूज़ कर रहा हूं।
YB@mail.com और इसका एक पासवर्ड भी सेट कर
देता हूं। जैसे 1 2 3 ये देखिए। अब ये
सारी इंफॉर्मेशनेशन हमारे डाटाबेस के अंदर
सेव हो जाएगी। और वो होगी किसकी हेल्प से?
वो होगी हमारी एपीआई की हेल्प से। और इससे
नेक्स्ट वीडियो में हम देखेंगे इस सारे
डाटा को हम फॉर्म के साथ कैसे सेव करते
हैं जिसमें हम अजेक्स का यूज करने वाले
हैं। तो अभी मैं यहां पर सेंड पर क्लिक
करूंगा
और यह देखिए जैसे ही हमारा डाटा
सक्सेसफुली सेव हो चुका है। तो यहां पर एज
ए रिस्पांस इसने यहां पर हमारे पास एक
डाटा सेंड किया है। यह वही डाटा है जो
हमने अपनी कंट्रोलर फाइल के अंदर रखा था।
जैसे स्टेटस यहां पे ट्रू सेट किया था,
मैसेज सेट किया था। यूजर क्रिएटेड
सक्सेसफुली और यूजर लास्ट में उसकी सारी
इंफॉर्मेशन आ रही है। तो यहां पर आपको
क्लियर हो रहा होगा कि कैसे हम यहां पर और
उसका यहां पर रिस्पांस चेक कर सकते हैं।
अब फ्यूचर में अगर हम यहां पर मोबाइल ऐप
में काम कर रहे हैं या रect js या व्यू js
के अंदर काम कर रहे हैं तो हमें यह डाटा
मिलेगा एज ए रिस्पांस जिसको हम अपनी
वेबसाइट के अंदर कहीं शो कर सकते हैं। अब
इसके बाद मैं अपनी दूसरी यूपीआई को चेक
करता हूं जो है लॉग इन से रिलेटेड। तो मैं
इसी यूआरएल को कॉपी कर लेता हूं।
यहां पे आता हूं। तो सबसे पहले मेरे को
यहां पे चेक करना है पोस्ट क्योंकि मैंने
अपने जितने भी राउट्स क्रिएट किए हैं उन
सब में पोस्ट मेथड का यूज़ किया है। यहां
पर मैं साइन अप की जगह पे लिख दूंगा लॉग
इन। अब यहां पर जो मेरा फॉर्म का डाटा था
मैं उसमें जाता हूं बॉडी में फॉर्म डाटा
में और यहां पर मेरी दो फील्ड्स हैं ईमेल
और पासवर्ड।
अब जो मैंने अभी लॉगिन क्रिएट किया है
अपना साइन अप yahoo बाबा से उससे मैं यहां
पर लॉग इन कर लेता हूं।
यह देखिए मैंने इसका यूजरनेम और पासवर्ड
दोनों सेट कर दिए हैं। यहां पर फील्ड्स ले
लिए हैं और यहां पर सेट कर दिए पोस्ट। यह
आपको चेक कर लेना है। यहां पर पोस्ट ही
होना चाहिए। अब मैं यहां पर सेंड पे क्लिक
करता हूं। यह देखिए यहां पर एज ए रिस्पांस
यहां पे स्टेटस आ चुका है। मैसेज आ चुका
है जो हमने सेट किया था अपनी कंट्रोलर
फाइल के अंदर। और सबसे मेन चीज जो sm
एपीआई ने हमारे को दिया है टोकन। यह देखिए
उसने हमारे को एक टोकन क्रिएट करके दिया
है जिसकी टाइप है बियर। इसका यूज हम अपनी
नेक्स्ट वीडियो के अंदर करेंगे और इस
वीडियो के अंदर भी हम करने वाले हैं आगे
मगर वह अलग तरीके से होगा। देखिए अगर मैं
दोबारा से लॉग इन करता हूं यहां पे सेंड
करूंगा तो यह टोकन चेंज हो जाएगा। मैं
आपको करके दिखाता हूं। यह देखिए यहां पर
यह टोकन क्रिएट हो चुका है। इसका मतलब
हमारे डाटाबेस के अंदर अब दो टोकन बन चुके
हैं इसी यूजर के। मैं एक बार आपको डाटाबेस
में भी चेक कराता हूं। तो देखिए यहां पर
मैं अपने यहां आ गया अपने डाटाबेस में
जिसका नाम है सtम एपीआई। अब यहां पर कई
टेबल्स हैं। यूजर का टेबल है, पोस्ट का
टेबल है और यहां पर एक टेबल है पर्सनल
असेस टोकन। अब जब से मैंने दो बार लॉग इन
किया तो इसके अंदर दो रोज़ क्रिएट हो चुकी
होंगी। मैं इस पे क्लिक करता हूं। और यह
देखिए यहां पर दो रोज़ क्रिएट हो चुकी हैं
और दो बार टोकन क्रिएट हुआ है। सेम ही
यूजर के लिए जिसका आईडी है वन। आप यहां पर
देख सकते हैं। मैं आपको यूजर भी चेक करा
देता हूं। तो, यहां पर यूज़र्स टेबल है। यह
देखिए, यह यूजर है हमारा Yahoo Baba। इसकी
ईमेल और पासवर्ड भी आ रहा है।
तो यह मैंने इंफॉर्मेशन जब लॉगिन का यूज
की तो इसने दो बार टोकन क्रिएट कर दिया।
तो बेसिकली ऐसा रियल लाइफ में नहीं होता।
जब आप एक बार लॉग इन करते हैं किसी एक
डिवाइस से तो उसका एक ही टोकन बनेगा। एक
ही यूजर ऐसा हो सकता है कि अलग-अलग
डिवाइसेस से लॉग इन करे। जैसे Chrome से
लॉग इन कर लिया, Firefox से लॉग इन कर
लिया, अपने मोबाइल में जाकर लॉग इन कर
लिया। तो ऐसे वह अलग-अलग जहां-जहां पर भी
लॉग इन करेगा, तो उस हर डिवाइस का टोकन
अलग बनेगा और उस हर ब्राउज़र का भी टोकन
अलग बनेगा। इसके बाद जैसे हमने देख लिया
कि हम कैसे साइन अप कर सकते हैं, लॉग इन
कर सकते हैं। मैंने लॉग इन की भी आपको
यहां पर एपीआई को यूज करके दिखा दिया। अब
इसके बाद हमारा लास्ट जो हमने अभी एपीआई
क्रिएट की है लॉगउ के लिए उसको भी देख
लेते हैं। तो उसके लिए मैं इसी यूआरएल को
कॉपी कर लेता हूं।
और इस यूआरएल को हम लॉग आउट के टाइम पे
यूज़ करेंगे। तो यहां पर लिख देता हूं लॉग
आउट।
और यहां पर गेट की जगह पे चेंज कर देता
हूं पोस्ट। क्योंकि मैंने अपने राउट के
अंदर इसका मेथड पोस्ट ही लिया है। अब यहां
पर कोई भी बॉडी की इंफॉर्मेशन जैसे हमने
पहले सेट की थी वह करने की जरूरत नहीं है
क्योंकि यह सिर्फ हमारे टोकन को डिलीट
करेगा। तो मैं यहां पे क्या करता हूं?
सेंड पे क्लिक करता हूं। देखिए यहां पर एक
आ चुका है एक एरर। आप यहां पे देख रहे
हैं। यहां पर टेस्ट रिजल्ट में भी जाकर
देख सकते हैं। या यहां पर कुकीज़ में वैसे
बॉडी में सही दिखा रहा है। यहां पर अगर इस
तरह की hटीएमएल आ रही है तो इसका मतलब एक
एरर है। यह एरर क्यों आया है? क्योंकि जब
मैंने यहां पर अपना राउट क्रिएट किया था
तो मैंने यहां पर चेक करवाया कि वह लॉगिन
है कि नहीं। तो हमारे राउट को यह तो पता
ही नहीं लग रहा कि आप लॉगिन हो कि नहीं।
तो हमें जो sm एपीआई ने एक टोकन बना के
दिया है वो टोकन भी हमें उसके अंदर पास
करना है। तो उसको हम पास कैसे करेंगे?
पहले मैं अपने पिछले वाले टैब में जाता
हूं जहां पर हमने लॉगिन किया था और यह
हमारा टोकन था। इस टोकन को मैं यहां से
कॉपी कर लेता हूं। क्योंकि अभी हम यहां पर
hटीएमl फॉर्म का यूज़ नहीं कर रहे हैं। तो
अभी हम पोस्टमैन के अंदर ही टोकन पास
करेंगे। तो पोस्टमैन के अंदर हम टोकन कैसे
पास करते हैं? उसके लिए हम जाते हैं
ऑथराइजेशन में और यहां पर आउट टाइप के
अंदर जाकर यहां पर बियर टोकन लेना है
क्योंकि स यूज़ करता है बियर टोकन और यहां
पर देखिए टोकन के अंदर जाकर एक पहले से ही
टोकन आ रहा है हमारे केस में इसको मैं हटा
देता हूं और यहां पर नया टोकन पेस्ट कर
देता हूं जो मैंने अभी कॉपी किया दूसरे
टैब से अब जब मैं इसको सेंड करूंगा तो यह
टोकन भी जाएगा सर्वर पे और यह पहले टोकन
चेक होगा उसके बाद आप इस तरह से लॉगउ हो
सकते हो तो यह बात आपको याद रखनी है जब भी
हम अंदर वाले पेजेस में जाएंगे जहां पर
टोकन की जरूरत है। तो आपको यहां से
ऑथराइजेशन में जाकर टोकन को पहले सेट करना
है। तो यहां पर मैंने सेंड पे क्लिक किया
और यह देखिए अब हम सक्सेसफुली लॉगउ हो
चुके हैं। यहां आ गया स्टेटस ट्रू और यूजर
की मैंने लास्ट में इनेशन भी सेंड की थी।
बेसिकली इसकी कोई जरूरत नहीं होती है लॉगउ
के टाइम पे और यहां पे मैसेज भी आ चुका
है। यू आर लॉग आउट सक्सेसफुली। तो यहां से
आपको क्लियर हो रहा होगा। सबसे पहले हमने
यहां पर लॉग इन किया था। मतलब कि साइन अप
फिर लॉग इन किया था और लॉग इन ने हमारे को
एक टोकन दिया। इस टोकन को हम आगे अपनी कोड
में यूज करेंगे। अभी तो हम इसको रेस्ट
एपीआई के अंदर यहां पर यूज कर रहे हैं
पोस्टमैन में। तो यहां पर देखिए हम यहां
से लॉगउ भी हो चुके हैं। मैं आपको डाटाबेस
भी चेक करा देता हूं। यह देखिए जो हमारा
यह टेबल है पर्सनल असेस टोकन मैं इसको
रिफ्रेश करता हूं। तो देखिए यहां पर उसी
यूजर के जितने भी टोकन थे वो सारे डिलीट
हो चुके हैं। ऐसा क्यों हो रहा है?
क्योंकि हमने जब लॉगउ किया है
तो यहां पर हमने उस यूजर के जितने भी
टोकंस थे उन सबको रिमूव कर दिया है। अगर
आप किसी स्पेसिफिक टोकन को यहां से रिमूव
करना चाहते हो तो यहां पर टोकन की की को
पास करना पड़ेगा। जैसे हमने यहां पर एक की
बनाई थी एपीआई टोकन। आप अलग-अलग कीज़ के
नेम भी रख सकते हैं। तो उस स्पेसिफिक की
को यहां पर जाकर रिमूव भी कर सकते हैं। अब
इसके बाद हम अपने दूसरे कंट्रोलर फाइल के
अंदर आ जाते हैं जिसका नाम है पोस्ट।
जिसको यूजर सिर्फ तभी एक्सेस कर सकता है
अगर वह लॉगिन है। तो यहां पर भी हम इस
पूरा जो हमने यह बनाया पूरा एपीआई रिसोर्स
कंट्रोलर बनाया। तो देखिए इसने अपने आप से
मेथड बना दिए जैसे नॉर्मल रिसोर्स
कंट्रोलर बनाता है। इंडेक्स का मेथड,
स्टोर का मेथड, शो का मेथड, अपडेट का मेथड
और लास्ट में डिस्ट्रॉय का मेथड। तो इनको
अब हम इस वीडियो के अंदर यूज़ करने वाले
हैं। तो सबसे पहले हम सारे डाटा को शो
करना चाहते हैं। और वो भी एपीआई से डाटा
को दिखाना चाहते हैं। तो उसके लिए मैं
यहां पे क्या करने वाला हूं? सबसे पहले
मैं यहां पर एक वेरिएबल ले लेता हूं डाटा
नाम से। और यह डाटा जो है यह एक एरे बना
देते हैं जिसके अंदर एक की भी ले लेते हैं
पोस्ट। आप नॉर्मल वेरिएबल भी बना सकते हैं
डाटा जो ऑटोमेटिकली एरे बन ही जाएगा। मगर
मैं यहां पे पोस्ट ले रहा हूं ताकि आपको
समझना आसान हो जाए। और इसके अंदर अपनी
एलुकेंट की क्वरी लगा देते हैं। हमारा एक
पोस्ट टेबल है। इसको मैं यहां से इंक्लूड
कर लेता हूं। तो देखिए यहां पर पोस्ट मॉडल
फाइल इंक्लूड हो चुकी है।
उसके अंदर मैं सारे डाटा को फैच करना
चाहता हूं। तो ऑल लिख लेता हूं। और यह अब
जो यह मेरा डाटा आया है इस वाले वेरिएबल
के अंदर इसको मैं एज ए जसन के रिस्पांस
में सेंड करना चाहता हूं। तो जैसे मैंने
पिछली वीडियो में किया था। मैं इस सक्सेस
मैसेज को यहां से कॉपी कर लेता हूं। और
यहां पर एज ए रिस्पांस सेंड कर दूंगा jसन
जिसका स्टेटस है ट्रू जिसका मैसेज यहां पे
आ जाएगा। मैसेज में मैं यहां लिख देता हूं
ऑल पोस्ट डाटा। आप कोई भी मैसेज शो कर
सकते हैं। आपकी मर्जी है। अब जो यह डाटा
यूजर के पास यहां से आया है मेरे पास डाटा
नाम के वेरिएबल की में इसको भी मैं एज ए
जसन के फॉर्मेट में सेंड कर देता हूं। तो
उसके लिए मैं की ले लेता हूं डाटा। आप की
का नेम कुछ भी ले सकते हैं। आपकी मर्जी
है। और यहां पर जो भी मेरे पास सारा डाटा
आया उसको मैं यहां से सेंड कर देता हूं।
यह देखिए। तो यह मेरा काम हो चुका है। अब
इसके बाद मैं यहां पर फटाफट से यहां पर
स्टोर का भी सारा मेथड क्रिएट कर लेता
हूं। अब सबसे पहले मुझे क्या करना है? जो
भी हमारे पास यहां पर सारा डाटा आएगा
फॉर्म की वैल्यू से उसको मैं यहां पर
वैलिडेट करूंगा। तो मैं यहां पे क्या करता
हूं? जो मैंने साइन अप के केस में सारा
कोड किया था उसी को मैं यहां से कॉपी कर
लेता हूं। क्योंकि सेम सा ही कोड होगा। यह
देखिए साइन अप का यह मेरा पूरा पेज है।
यहां पर मैंने वैलिडेट किया था। फिर उसको
चेक किया था। अगर फेल हो गया है। फिर
क्रिएट किया था और लास्ट में सक्सेस का
मैसेज शो किया था। तो इसको मैं कॉपी करके
सारा यहां पर डाल देता हूं। यह देखिए। अब
यहां पर सबसे पहले मैं वैलिडेट करूंगा। तो
इस फाइल को इंक्लूड कर लेता हूं। राइट
क्लिक करके इंपोर्ट क्लास। और यहां पर
मुझे इंपोर्ट करनी है यह फैसेट्स के अंदर
जो वैलिडेटर है। अब मेरे पोस्ट वाले टेबल
के अंदर तीन फ़ील्ड्स थी। टाइटल,
डिस्क्रिप्शन और इमेज। तो उसको मैं यहां
पर लिख लेता हूं।
यह देखिए यहां पर मैंने तीनों फील्ड्स
लेनी है। टाइटल, डिस्क्रिप्शन और इमेज
तीनों ही रिक्वायर्ड है डालनी। और जो इमेज
है उसका फॉर्मेट भी बता दिया मेस नाम के
यहां पर वैलिडेशन रूल की हेल्प से पीएजी,
जेपीजी, जेपीजी और लास्ट में गिव। इन
इमेजज़ का ही फॉर्मेट सिर्फ एक्सेप्ट होगा
अपलोड के लिए। इसके बाद यह हमारा मैसेज आ
जाएगा वैलिडेशन एरर का। अगर यह वैलिडेशन
फ़ेल हो जाती है।
इसके बाद यहां पर हम अपना डाटाबेस को सेव
करेंगे। डाटाबेस में सारी वैल्यूज़ को। तो
वही फील्ड्स मैं ले लेता हूं। यहीं से
कॉपी करके टाइटल, डिस्क्रिप्शन और इमेज।
और यहां पर मुझे फॉर्म की फील्ड लेनी है।
तो उसके लिए मैं मेथड यूज़ करूंगा
रिक्वेस्ट।
और मान लीजिए हमारी फॉर्म की फील्ड का नाम
है टाइटल। बिल्कुल इसी को कॉपी कर लेता
हूं।
और यहां पर जो इमेज आएगी उसको बेसिकली हम
किसी वेरिएबल के अंदर अभी डालेंगे। मैं
आपको दिखाता हूं। तो उसका नाम भी मैं यहां
पर ले लेता हूं। जैसे इमेज नेम और यहां पर
अब यूजर नहीं आएगा। टेबल का नेम है यहां
पर पोस्ट। तो मैं उसी को लिख देता हूं। तो
देखिए ये वाली हमारी फील्ड्स तो सेव हो
जाएंगी। टाइटल और डिस्क्रिप्शन। हमारे को
सबसे पहले एक इमेज अपलोड करानी है और उसका
जो हम रीनेम करेंगे उसको डाटाबेस में सेव
करना है। तो उसके लिए मैं यहां पे क्या
करता हूं? सबसे पहले मैं इमेज को अपलोड
करता हूं। जैसा कि हम अपनी पिछली वीडियो
में देख चुके हैं। इमेज को अपलोड कैसे
करते हैं। मैं उसका कोड लिख लेता हूं। फिर
आपको समझाता हूं।
यह देखिए यहां पर मैंने क्या किया? सबसे
पहले जो भी हमारा फॉर्म की रिक्वेस्ट से
इमेज नाम की मान लीजिए एक फील्ड होगी।
उससे हम इमेज का सारा नेम उठा लेंगे। और
यहां पर मैं उसका रीनेम करने वाला हूं। तो
सबसे पहले मुझे क्या करना है? उसकी
एक्सटेंशन निकालनी है कि उसकी एक्सटेंशन
क्या है? जेपीजी है, पीएजीए क्या है? तो
उसके लिए मैंने क्या किया? इसी वेरिएबल को
यूज़ किया और यहां पे लारावेल का मेथड यूज़
कर लिया। गेट ओरिजिनल एक्सटेंशन तो हमारे
को एक्सटेंशन मिल जाएगी। उसके बाद मैं
उसका रिनेम कर लूंगा। तो मैं पहले नेम
बनाता हूं। तो नेम में मैंने क्या किया?
एक अभी का जो भी टाइम होगा डॉट और जो भी
मैंने एक्सटेंशन उठाई है जैसे जेपीजी तो
जेपीजी लग जाएगा। पीnजी होगा तो पीnजी लग
जाएगा। उसके बाद मुझे क्या करना है? उस
इमेज को मैं अपने प्रोजेक्ट फोल्डर के
अंदर कहीं पर भी सेव करने वाला हूं। वो
कैसे करूंगा? उसके लिए मैं मूव मेथड का
यूज़ कर रहा हूं। और यहां पर पब्लिक पाथ के
अंदर मुझे जाना है। जो हमारा बेसिकली
अपलोड्स का फोल्डर होता है यहां पर। मैं
आपको दिखा देता हूं। यह पब्लिक फोल्डर। इस
पब्लिक फोल्डर के अंदर एक फोल्डर क्रिएट
हो जाएगा जिसका नाम होगा अपलोड्स। देखिए
अभी यह फोल्डर नहीं है और उसके अंदर नया
नाम आ जाएगा जो हमने अभी रखा है इमेज का।
तो पहले उसी नाम की इमेज इस फोल्डर में
सेव होगी और डाटाबेस में भी हम यहां पर
जाकर उसे सेव कर देंगे। तो यह हो गया
हमारा अपडेट का कोड। अब अगर हमारे को
सिंगल रिकॉर्ड देखना है, किसी सिंगल पोस्ट
को शो करना है, तो उसका भी हम यहां पर कोड
कर लेते हैं।
तो यहां पर मैं क्या कर रहा हूं? एक डाटा
नाम का एक वेरिएबल ले लेता हूं। उसके अंदर
मैं यहां पर पोस्ट नाम की एक की ले लेता
हूं। जिसके अंदर मैं सारा डाटा स्टोर करने
वाला हूं। और डाटा कौन सा स्टोर होगा जो
पोस्ट टेबल से आएगा हमारे पास। और इसके
अंदर मैं कौन-कौन से कॉलम्स देखना चाहता
हूं? तो उसके लिए मैं मेथड यूज़ करूंगा
सेलेक्ट।
और पहली फील्ड का नाम है जैसे आईडी।
और यहां पर यह सारी फील्ड्स मैं उठा
लूंगा। और इसके बाद मैं यहां पर वेयर
कंडीशन लगाता हूं कि किस यूजर का डाटा
मुझे देखना है। तो उसके लिए मैं यहां पे
लिखूंगा वेयर। और वेयर में यहां पर मैं एक
एरे बना लेता हूं। एक फील्ड पास कर देता
हूं आईडी। क्योंकि मैं आईडी से सर्च करना
चाहता हूं।
ये आईडी मुझे कहां से मिलेगा? यूआरएल से
जो हम यहां पर हमारे को मिल रहा है ये
स्ट्रिंग में। ये आईडी को ही मैं यहां पर
यूज़ कर रहा हूं। और यहां पे मैंने लिख
दिया गेट। तो ये डाटा हमें इस वाले कॉलम्स
का डाटा चाहिए। इस वाले टेबल में से जिसका
नाम है पोस्ट जहां पर यह आईडी मैच कर रहा
होगा। इस डाटा को सारा फैच करके ले आएगा
जिसको मैं एज़ ए रिस्पांस सेंड करूंगा। तो
रिस्पांस मेरा जेसन फॉर्मेट में होगा। तो
मैं इसको कॉपी कर लेता हूं और यहां पर आकर
सेट कर देता हूं। तो यहां पे स्टेटस रहेगा
ट्रू और यहां पर लिख देता हूं। जैसे यहां
पर लिखा था
यहां पर मैंने कुछ चेंज नहीं किया। यहां
पर भी मुझे चेंज करना था। तो इसको मैं
पहले कर लेता हूं।
यहां पर मैं लिखता हूं पोस्ट
और यहां पर भी लिख देता हूं पोस्ट। यही
वाली सारी पोस्ट मैं यहां से सेंड कर
दूंगा।
यूजर को भी पता लग जाएगा कि मैंने कौन सी
पोस्ट क्रिएट की है। और यहां पर लिख देता
हूं पोस्ट क्रिएटेड सक्सेसफुली।
यहां पर अब से आता हूं। यहां पर भी मैसेज
चेंज करता हूं।
यहां पर जस्ट मैसेज चेंज कर रहा हूं। योर
सिंगल पोस्ट। अब यहां पर मेरे पास सारा जो
डाटा आ रहा है वह आ रहा है डाटा राम के
वेरिएबल में। तो इसी को मैं यहां से सेट
कर देता हूं और यहां पर लिख देता हूं
डाटा। अब यूजर को यह सिंगल डाटा मिल जाएगा
पोस्ट का तो वो यहां देख सकता है। अभी मैं
आपको सारा पोस्टमैन में चेक भी कराऊंगा।
उसके बाद जब मेरे को डाटा को अपडेट करना
है। तो इसके अंदर भी बेसिकली वही कोड करना
है जो मैंने ऊपर इंसर्ट के केस में किया
है। यही कोड मैं सारा कॉपी कर लेता हूं।
क्योंकि इसी को पहले मैं वैलिडेट करूंगा।
फिर उसका मैसेज आ जाएगा। फिर उसके बाद यह
इमेज को अगर यूजर ने चेंज किया तो वह कर
सकता है। फिर यहां पर अपडेट कमांड
चलाएंगे। तो मैं सीको कोड को कॉपी कर रहा
हूं
और यहां आकर पेस्ट।
तो सबसे पहले मैं यही चेक करूंगा टाइटल,
डिस्क्रिप्शन और इमेज। उसके बाद मैं यहां
पर वैलिडेशन का एरर दिखा दूंगा। अगर यह
वैलिडेशन फेल हो जाती है, यूजर ने इसके
अकॉर्डिंग फील्ड्स की वैल्यू नहीं डाली
है। और यहां पर पहले इमेज को भी मैं बाद
में चेंज करूंगा। यहां पर मैं मेथड चेंज
कर देता हूं क्रिएट की जगह पे। अपडेट। तो
अपडेट के लिए सबसे पहले मुझे यहां पर
कंडीशन लगानी है। तो उसको मैं लिखूंगा
वेयर और उसके बाद अपडेट। वेयर में मैं
यहां पर
एरे की फॉर्म में यहां पर आईडी सेंड कर
देता हूं। आईडी और यहां पर लिख देता हूं
आईडी। अब यह वही आईडी है जो मेरे को ऊपर
से मिलेगा। यह देखिए। यही आईडी मैं यहां
पर सेट करने वाला हूं। क्योंकि इसी यूजर
का मुझे डाटा सेव करना है। बाकी सब फील्ड
सेम ही रहेंगी। टाइटल, डिस्क्रिप्शन और
इमेज नेम और यहां पर लेता हूं पोस्ट
अपडेटेड सक्सेसफुली।
तो, यहां पे मुझे सबसे पहले क्या चेक करना
है? मुझे यह चेक करना है कि यूजर ने पहले
कोई इमेज अपलोड कर रखी है कि नहीं। अगर
नहीं कर रखी, तो इमेज अपलोड कर दे और अगर
कर रखी है, तो पहली वाली इमेज को रिमूव कर
दे। तो, उसके लिए मैं यहां पे क्या
करूंगा? यहां पर अपना कोड लिख लेता हूं।
इसको मैं अभी बाद में यूज़ करूंगा। इससे
पहले मैं यहां पर सबसे पहले सारे डाटा को
फैच करता हूं। जिसको यूजर अपडेट करना
चाहता है। तो, यहां पर मैं ले रहा हूं
पोस्ट।
यहां पर सिर्फ दो कॉलम्स का डाटा चाहिए
आईडी और इमेज का
और यहां पर मैं कर लेता हूं गेट। गेट की
जगह पे आप यहां पर फर्स्ट मेथड का भी यूज़
कर सकते हैं। जो पहला डाटा मिलेगा उसी को
अगर आपने दिखाना है। अब यहां पर सबसे पहले
मुझे चेक करना है यूजर ने अभी कोई फॉर्म
के अंदर फील्ड डाली है कि नहीं। तो उसके
लिए मैं यही मेथड यहां से कॉपी कर लेता
हूं।
अगर वो खाली नहीं है तब वो इस फील्ड के
अंदर आएगा। मतलब कि इस इफ स्टेटमेंट के
अंदर। तो हम सबसे पहले पुरानी इमेज को
डिलीट करेंगे। तो उसके लिए मैं यहां पे
क्या करता हूं? अपने इसी पाथ को कॉपी कर
लेता हूं।
और अब मैं अपने डाटाबेस में भी चेक कर
लेता हूं कि डाटाबेस में जो इमेज नाम का
कॉलम है उसमें कोई वैल्यू कहीं खाली तो
नहीं है। अगर वो खाली नहीं है तभी मुझे
इमेज को डिलीट करना है। मतलब कि उसके अंदर
इमेज पहले से रखी हुई है। तो उस इमेज को
पहले रिमूव करना है। तभी नई इमेज को अपलोड
करना है।
ये देखिए। यहां पर मैंने चेक कर लिया क्या
उसके अंदर एम्प्टी वैल्यू इतनी है या फिर
उसकी वैल्यू नल तो नहीं है। इन दोनों में
से अगर सेम ही वैल्यू है मतलब कि दोनों
में से तब मैं पुरानी इमेज को पहले डिलीट
करूंगा।
यहां पर मैं ओल्ड फाइल नाम का एक वेरिएबल
बना रहा हूं जिसके अंदर मैं इसी पाथ को
यूज़ करने वाला हूं।
और उसके बाद इमेज का नाम जो मेरे को
मिलेगा डाटाबेस से।
अब मेरे को फोल्डर में से उसको डिलीट भी
करना है। तो यहां पर सबसे पहले मैं चेक कर
लेता हूं। क्या इस नाम की कोई फाइल पड़ी
भी है कि नहीं फोल्डर के अंदर। फाइल
एग्जिस्ट। यह लाराव का मेथड है जो चेक
करने के काम आता है फाइल को चेक करने की
कि फाइल इस पर्टिकुलर फोल्डर के अंदर है
कि नहीं। तो हमारा जो फोल्डर है उसका नाम
है ओल्ड फाइल। इस वेरिएबल के अंदर सारा
पाथ आ रहा है कि इधर जाके चेक करेगा। अगर
यह फाइल एग्ज़िस्ट कर रही होगी जो हमने
यहां पर डाली है। तब ये अंदर आएगा और यहां
पर मैं वही मेथड यूज़ करूंगा जिसका नाम
होता है अनलिंक। अनलिंक बेसिकली क्या करता
है? फाइल को रिमूव कर देता है। जो भी हम
इसके अंदर डालते हैं। तो हमारी फाइल का
नाम ओल्ड फाइल है। इसको मैं यहां से रिमूव
कर देता हूं। यह देखिए। तो सबसे पहले
मैंने क्या किया? यहां पर चेक किया कि
यूजर ने फॉर्म की फील्ड के अंदर इमेज
अपलोड की है कि नहीं। अगर वह खाली है फिर
तो इसके अंदर आएगा ही नहीं। अगर उसने किया
है तो पहले पुरानी वाली इमेज को डिलीट
करेगा। जब वो इमेज डिलीट हो जाएगी।
उसके बाद ही मैं यहां पर नई इमेज को अपलोड
करने वाला हूं। तो यह कोड लगभग वही रहेगा।
तो इसको बेसिकली मुझे यहां नहीं लिखना है।
यहां से मैं इसे कट कर लेता हूं। यह
देखिए। यहां मैं इसी कोड के अंदर इसे
डालूंगा। सबसे पहले जब हमारी ये फोल्डर से
इमेज डिलीट कर दी। उसके बाद मैं इस कोड को
यहां पर डाल दूंगा।
और इसी इफ स्टेटमेंट का अगर उसके अंदर
पहले से कोई वैल्यू आ रही है हमारे फॉर्म
फील्ड के अंदर। जब हम फॉर्म को ओपन करेंगे
तो वहां पर एक वैल्यू भी डलवा देंगे। तो
यहां पर मैं इसका एक एल्स पार्ट भी बना
लेता हूं कि इसका मतलब पुरानी इमेज ही है।
उसी को दोबारा से वहीं स्टोर करना है।
यह देखिए। तो अगर यहां पर कोई नई फेज नहीं
आई होगी। पुरानी पहले ही नाम पहले से
एग्जिस्ट कर रहा है। तो यहां पर क्या
होगा? पुरानी इमेज जो हमारे डाटाबेस में
पड़ी हुई थी वही दोबारा से इस वेरिएबल के
अंदर आ जाएगी। जिसको हम डाटाबेस में
दोबारा से सेव कर देंगे।
यह देखिए। तो यह मेरा काम हो चुका है। आप
यहां पे कोड देख सकते हैं सारा का सारा।
अब यह हमारा अपडेट का कोड हो चुका है। अब
इसके बाद हमारा रह गया डिलीट से रिलेटेड
कोड। उसके लिए मैं मेथड यूज करने वाला हूं
डिस्ट्रॉय। तो, उसके लिए हमें दो काम करने
होंगे। सबसे पहले हम डाटाबेस में से भी
एंट्री को डिलीट करेंगे और उससे रिलेटेड
जो इमेजज़ हैं, उसको भी डिलीट करेंगे। तो,
सबसे पहले मैं यहां पर डाटाबेस का काम कर
लेता हूं कि डाटाबेस में से क्या रिमूव
करना है।
यह देखिए। मैंने यहां पर सबसे पहले फाइंड
किया जो यूजर ने आईडी भेजा जिसको रिमूव
करना है। मैंने उसको फाइंड किया डाटाबेस
में और यहां पर जाकर उसको रिमूव कर दिया।
अब इसको रिमूव करने के बाद मुझे यूजर को
एज ए सक्सेस मैसेज भी शो करना है। तो मैं
ऊपर से ही कॉपी कर लेता हूं और यहां पर
उसे सेट कर देता हूं। यहां पर बस मैं
मैसेज चेंज कर दूंगा। योर पोस्ट
हैज़ बीन रिमूव्ड।
यह देखिए। यहां पर आ जाएगा हमारा 200 कोड
का एरर। अब देखिए यहां पर मैं एक चीज़ आपको
और भी बताना चाहता हूं। जब हम रिमूव करते
हैं तो यह बेसिकली और अगर हम यह मैसेज शो
नहीं करना चाहते तब हम यहां पर यह कोड भी
चेंज कर सकते हैं। यहां पर लिख सकते हैं
204 अगर आप कोई भी रिस्पांस सेंड नहीं कर
रहे एज ए मैसेज में या स्टेटस में तो अभी
तो मैं कर रहा हूं। तभी मैंने यहां पे लिख
दिया 200। अब यह मेरा डाटाबेस से तो रिमूव
हो जाएगा। मगर इससे रिलेटेड इमेज नहीं
रिमूव होगी। तो इमेज का काम मेरे को पहले
रिमूव करना है। उसके बाद डाटाबेस में से
रिमूव करना है। तो उसके लिए भी मैं यहां
पर कोड लिख लेता हूं।
पहले मैं यहां पर इमेज का पाथ बना रहा
हूं।
यह देखिए सबसे पहले मैंने क्या किया?
पोस्ट में से जाकर जो हमारा इमेज कॉलम है
जो भी वैल्यू स्टोर है इस आईडी पर उस इमेज
का नाम मैं यहां से उठा लाया। अब इस इमेज
को नाम तो मेरे पास आ चुका है। अब मेरे को
पर्टिकुलर उस पाथ पे जाकर इस इमेज को
रिमूव भी करना है। तो उसके लिए मैं ऊपर से
एक कोड कॉपी कर लेता हूं जो अभी मैंने पाथ
के लिए बनाया था।
यह देखिए कुछ इस तरीके का कोड है यहां पर
यह पाथ का। यह मैं इसको यहीं से कॉपी कर
लेता हूं।
और यहां पर ले लेता हूं फाइल पाथ।
अब यहां पर मुझे इमेज का नाम भी बताना है।
तो देखिए जो इमेज का नाम है वो आएगा पोस्ट
नाम के वेरिएबल के अंदर। अब पोस्ट बेसिकली
एक एरे होगा और उसमें मल्टीपल वैल्यूज़ हो
सकती हैं। तो मल्टीपल वैल्यूज़ तो नहीं
आएंगी। एक ही वैल्यू आएगी। एक तरीके का
एरे आएगा। तो उसमें सबसे पहले एरे को
टारगेट करने के लिए हम लिखेंगे ज़ीरो। और
उसके अंदर हमारे पास डाटाबेस के अंदर जो
सी फील्ड है उसका नाम है इमेज। हम इस तरह
से लिख देंगे। और इसके बाद हमारे पास सारा
पाथ बन जाएगा। इसी पाथ को मुझे रिमूव करना
है। मतलब कि इस फाइल को तो उसके लिए आपको
मालूम है कि उसके लिए मेथड आता है अनलिंक।
और इसके अंदर हम अपना वेरिएबल पास कर
देंगे फाइल पाथ। यह देखिए। तो सबसे पहले
मैंने क्या किया? सबसे पहले मैंने डाटाबेस
में से इमेज का नाम पिक किया है। यहां पर
एक गड़बड़ हुई है। मैं इसको ऊपर कोड कर
देता हूं यहां पर।
सबसे पहले मैंने इमेज का नाम पिक किया
डाटाबेस में से। फिर उसको इस पाथ में जाकर
पूरा एक नया कोड बना दिया है। यहां पर आप
देख रहे हैं। यहां पर बेसिकली पोस्ट नहीं
आएगा। यहां पर आएगा इमेज का पाथ। यह देखिए
जो मेरे को डाटाबेस से मिला है इमेज का
पाथ इस वेरिएबल में। इसमें सबसे पहले वाला
जो एरे है उसके अंदर जो इमेज का नाम आ रहा
है वही मुझे रिमूव करना है इस वाले पाथ
में से जाकर। तो मैंने पूरा इसका कॉनकट
करके एक स्ट्रिंग बना लिया है। पूरे पाथ
का पब्लिक फोल्डर। पब्लिक फोल्डर के अंदर
अपलोड्स उसके अंदर इमेज का नाम। यह हमारे
पास आ गया फाइल पाथ में जिसको मैंने जाकर
अनलिंक कर दिया। अनिक ने क्या किया है? इस
पर्टिकुलर फाइल को डिलीट कर दिया। उसके
बाद मैंने डाटाबेस में से एंट्री को रिमूव
किया है। और एज़ ए रिस्पांस क्योंकि हम
एपीआईज़ में काम कर रहे हैं। तो इसकी हर
काम के बाद मुझे एज़ ए रिस्पांस JSON डाटा
फॉर्मेट को सेंड करना है। तो यहां पर
मैंने ये एज़ ए रिस्पांस JSN का फॉर्मेट जो
है यूजर को सेंड कर दिया। तो यह मेरा पूरा
पोस्ट का सारा काम यहां पर कंप्लीट हो
चुका है। आप देख रहे हैं जिसके अंदर हमने
यहां पर सारे डाटा को पहले रीड किया है।
यहां पर स्टोर भी किया है। यूजर के डाटा
को अपडेट भी किया है। मतलब कि पोस्ट के
डाटा को शो भी किया है सिंगल पोस्ट को और
लास्ट में उसको रिमूव भी किया है। तो यह
सारा काम मेरा हो चुका है।
अब मैं इससे रिलेटेड जो एपीआई है उसको भी
क्रिएट कर लेता हूं। मतलब कि अपना राउट
को। तो उसके लिए मैं राउट कैसे बनाऊंगा?
तो इसके लिए मैं यहां पर लिखूंगा राउट। अब
देखिए यह मैंने एपीआई रिसोर्स राउट बनाया
था। तो उसके लिए मैं यहां पर स्पेशल एक
वर्ड लिखूंगा जिसका नाम होता है एपीआई
रिसोर्स। यह देखिए यह आपको सिर्फ तभी
लिखना है अगर आपने एपीआई रिसोर्स बनाया।
अगर आपने सिंपल रिसोर्स कंट्रोलर फाइल
बनाई है, तो आप यहां पे लिखेंगे रिसोर्स।
आप एपीआई फोल्डर के अंदर जहां अपना
कंट्रोलर बना रहे हैं, वहां पर आप सिंपल
रिसोर्स कंट्रोलर भी बना सकते हैं। मगर
मैंने बनाया है एपीआई रिसोर्स कंट्रोलर।
जिससे मुझे कोड को समझना भी आसान रहे। तो,
यहां पर अब मैं क्या करता हूं? अपने राउट
का नाम ले लेता हूं। तो हमारे राउट का नाम
रहेगा यहां पर पोस्ट जो हम यूआरएल बार में
लिखेंगे और इसके बाद मैं यहां पर लिखूंगा
अपने कंट्रोलर का नाम जिसका नाम है पोस्ट
कंट्रोलर यह देखिए और यहां पर मैं लिखता
हूं क्लास। ऐसा करने से होगा क्या? देखिए
हमारी ऊपर यह पोस्ट कंट्रोलर की फाइल भी
ऊपर इंक्लूड हो चुकी है। अगर आपके केस में
नहीं हो रही है तो आप इसे मैनुअली भी लिख
सकते हैं। अब इसके अंदर जितने भी हमने
मेथड्स बनाए हैं पोस्ट कंट्रोलर के अंदर
उसको असेस करने के लिए यूजर का लॉगिन होना
जरूरी है। तभी वह उनको असेस कर सकता है।
तो उसके लिए मैं इस तरह से इस मिडिल वेयर
को कॉपी करके यहां पे पास करूंगा। यह
देखिए कुछ इस तरह से। तो अंदर वाले किसी
भी मेथड को अगर मैं यूज़ करना चाहता हूं
तो मुझे यहां पर अपना टोकन भी पास करना
पड़ेगा। जो यह मैंने अलग-अलग दो राउट्स
बनाए हैं। दोनों में ही मिडिल वेयर सेम
यूज हो रहा है। आउट सटम तो मैं इसका एक
ग्रुप भी बना सकता हूं। ग्रुप कैसे बनाते
हैं वो भी मैं आपको बता देता हूं।
यह देखिए मैंने यहां पर लिखा राउट मिडिल
वेयर और उसके अंदर पास कर दिया आउट सटम और
इसको बनाया ग्रुप फंक्शन। इस फंक्शन के
अंदर आकर मेरे को यह अपने दोनों राउट पास
कर देने हैं।
यह देखिए। और लास्ट में जो मैंने यहां पर
मिडिल वेयर पास किया था, इसको मुझे अब
लगाने की कोई जरूरत नहीं है।
यह देखिए। तो, यह मेरा बन गया STM का आउट
से रिलेटेड ग्रुप जिसके अंदर मैं मल्टीपल
लिंक पास कर सकता हूं। जो भी मैं चाहता
हूं कि जब यूजर लॉगिन हो तभी उन पेजेस को
असेस कर पाए। यही सेम काम हमने ऑथेंटिकेशन
वाली वीडियो में भी देखा था। तो यहां पर
मैंने इस फाइल को सेव किया। अब एक बार मैं
आपको क्या करता हूं? एक बार मेरे पास जो
भी ये रिसोर्स राउट बने हैं, इनके पूरे
यूआरएल आपको चेक करा देता हूं। तो उसके
लिए मैं टर्मिनल को ओपन करता हूं और यहां
पर जाकर एक नया टर्मिनल क्रिएट करता हूं।
और यहां पर लिखता हूं पीएp आर्टिसन
राउट कॉलन लिस्ट। मैं पूरे राउट की लिस्ट
देखना चाहता हूं। जो भी मेरे प्रोजेक्ट के
अंदर राउट्स हैं। यह देखिए यहां पर पूरी
लिस्ट आ चुकी है। तो देखिए जो भी हमारे
पोस्ट से रिलेटेड राउट्स हैं। एक तो लॉग
इन और लॉगउ है और साइन अप भी है। यहां पर
एपीआई के अंदर एक पोस्ट से रिलेटेड सारे
राउट्स बन चुके हैं। क्योंकि यह एक
रिसोर्स राउट्स हैं। तभी इतने सारे लिंक्स
अपने आप बन चुके हैं। तो यहां पर आपको दिख
भी रहा है इंडेक्स के लिए है, स्टोर के
लिए है, शो के लिए, अपडेट के लिए और
डिस्ट्रॉय के लिए। और सभी से रिलेटेड जो
एचटीटीवी के मेथड्स हैं, वह भी यहां पर
दिए हुए हैं। जब भी आप डाटा को शो करना
चाहते हैं, तो यहां पर गेट मेथड का यूज
करेंगे। जब आप डाटा को स्टोर करना चाहते
हैं, तो आप यहां पे पोस्ट मेथड का यूज़
करेंगे। सारे डाटा को शो करने के लिए भी
गेट मेथड का यूज़ है। अपडेट के केस में हम
यहां पर इस तरह का राउट लिखेंगे और यहां
पर पुट का यूज़ करेंगे। और डिलीट मेथड के
लिए हम डिलीट मेथड का यूज़ करेंगे जो
एचटीटीp का मेथड होता है। यह देखिए। अब
इसके बाद मैं अपना पोस्टमैन सॉफ्टवेयर ओपन
कर लेता हूं। देखिए मैं यहां पर आ चुका
हूं अपने पोस्टमैन सॉफ्टवेयर में। अब सबसे
पहले मुझे लॉग इन करना है। तो मैं अपने
लॉग इन वाले पेज में जाता हूं। यह देखिए
यह लॉग इन का राउट है। यहां पर मैंने ईमेल
और पासवर्ड पहले से ही डाल रखा है। यह
स्टोर ही रहता है इसके अंदर। तो यह फॉर्म
डाटा के अंदर है। अब यहां पर सबसे पहले
मैं लॉग इन कर लेता हूं। तो मैं यहां पर
सेंड करता हूं। यह देखिए। अब यहां पर एक
नया टोकन बन के आ चुका है। यह मेरे
डाटाबेस में भी सेव हो चुका है। इस टोकन
को आपको कॉपी कर लेना है। क्योंकि इसकी
जरूरत अब अंदर सारे पोस्ट वैलिड राउट्स के
अंदर पड़ेगी। तो अब मैं यहां पर एक नया
राउट क्रिएट करता हूं। मैं यहां पर जो यह
लॉगउ वाला बनाया था, इसको मैं रिमूव कर
देता हूं। इसकी अब कोई जरूरत नहीं है।
इसको सेव करना चाह तो कर सकते हैं फ्यूचर
यूज़ के लिए। अब इसके अंदर सबसे पहला हमारा
मेथड था इंडेक्स मेथड जिसके अंदर हम सारे
डाटा को रीड करना चाहते हैं। तो उसके लिए
मेरे को यहां पर गेट ही लिखना है। और यहां
पर अपना राउट ले लेना है। जैसे मैंने यह
ले लिया। एपीआई के अंदर मुझे चेंज कर देना
है पोस्ट।
यहां पर गेट ही रखना है क्योंकि मुझे सारे
डाटा को रीड करना है। अब इसके अंदर मुझे
साथ में टोकन भी पास करना है। तो उसके लिए
मैं जाऊंगा ऑथराइजेशन में। यहां पर
सेलेक्ट करता हूं बियर टोकन और यहां पे
पहले से एक टोकन आ रहा है। इसको मैं रिमूव
करके नया टोकन पेस्ट कर देता हूं। यह
देखिए थ्री नंबर का टोकन। अब मैं यहां पर
सेंड पे क्लिक करता हूं। तो देखिए यहां पर
आ रहा है खाली। मतलब कि अभी हमारे पास कोई
भी डाटाबेस के अंदर पोस्ट नहीं है। तो
सबसे पहले हम यहां पर एक नई पोस्ट क्रिएट
कर लेते हैं। तो उसके लिए मैं एक नए टैब
में जाता हूं और यही वाला यूआरएल यहां से
कॉपी कर लेता हूं।
बस यहां पर मुझे मेथड चेंज कर देना है।
यहां पे करना है पोस्ट। यह सब आप अपने
राउट लिस्ट नाम की जो आर्टिजन की कमांड है
उसमें जाके चेक कर सकते हैं कि गेट यूज़
करना है या पोस्ट। तो यहां पर मैंने पोस्ट
किया क्योंकि मुझे डाटा को सेव करना है।
अब सबसे पहले मैं ऑथराइजेशन के अंदर जाकर
यहां पर टोकन सेलेक्ट कर लूंगा। बियरर
टोकन और यह मेरा टोकन पहले से ही जो मैंने
डाला है उस वो आ रहा है यहां पर। अब मेरे
को बॉडी का कंटेंट डालना है जो भी मुझे
अपने डाटाबेस में सेव करना है। यहां पे
मैं सेलेक्ट करता हूं फॉर्म डाटा। उसके
बाद यहां पर मैं फील्ड्स ले लेता हूं। तो
हमारी फील्ड्स यहां पर आप चेक कर सकते हैं
कौन-कौन सी फील्ड्स हैं। मैं आपको
शो कर देता हूं। यह देखिए स्टोर के केस
में हमारे पास तीन फीड्स हैं। टाइटल है,
डिस्क्रिप्शन है और इमेज है। तो यही तीनों
फील्ड्स मैं ले लेता हूं।
ये देखिए। अब टाइटल और डिस्क्रिप्शन का
यहां पर जो डाटा टाइप है वो टेक्स्ट ही
रखनी है। मगर इमेज के केस में यहां पर
चेंज कर देनी है। यहां पर कर देनी है
फाइल। क्योंकि मैं यहां पर फाइल अपलोड
करना चाहता हूं। तो यहां पर मैं लिख देता
हूं पोस्ट नंबर वन। आप कुछ भी टाइटल रख
सकते हैं।
और यहां पर मैंने लिख दिया है हियर इज अ
डेस्कटॉप पोस्ट वन। अब यहां पर इमेज पे
फाइल अपलोड करनी है। तो मैं इसके अंदर
जाऊंगा और यहां पर लिंक करूंगा न्यू फाइल
फ्रॉम लोकल मशीन। तो मैं यहां पर डेस्कटॉप
पे जाता हूं। इमेजेस में और यहां पर कुछ
इमेजेस हैं। मैं यहां पर यह इमेज सेलेक्ट
कर लेता हूं। यह देखिए। अब यहां पर यह
इमेज को मैं यहां से अपलोड कर देता हूं।
यहां पर एक एरर आ रहा है। हम प्रव्यू में
जाकर देख सकते हैं कि एग्जैक्ट एरर क्या
है? यहां पर आ रहा है इंटरनल सर्वर एरर।
यहां पे जो ये एरर है ये बेसिकली इमेज से
रिलेटेड है। यह कह रहा है डज़ नॉट हैव ए
डिफ़ॉल्ट वैल्यू। इस तरह का जब लारावल में
एरर आता है तो मोस्टली केसेस होते हैं कि
हमने जो पोस्ट की जो मॉडल फाइल है वहां पर
इस कॉलम के बारे में बताया नहीं कि
गार्डेड है कि नहीं है। और यहां पर मैं
जाता हूं मॉडल्स के अंदर पोस्ट मॉडल फाइल
के अंदर। ये देखिए। यहां पर फी लेबल के
अंदर दो ही फील्ड्स डाली हैं। टाइटल और
डिस्क्रिप्शन। एक फील्ड और ले लेता हूं
जिसका नाम मैं ले रहा हूं इमेज। तो यहां
पर मैंने फाइल को सेव किया और यहां पर आया
पोस्टमैन में। अब इस फॉर्म को दोबारा से
सबमिट करता हूं सेंड पे क्लिक करके। यह
देखिए यहां पर आप प्रीटी पे क्लिक करेंगे
तो आपको प्रॉपर jसन फॉर्मेट दिखेगा। यहां
पर आपको दिख रहा है कि हमारा डाटा जो है
सक्सेसफुली क्रिएटेड हो चुका है। टाइटल भी
आ रहा है यहां पर। डिस्क्रिप्शन है। इमेज
भी अपलोड हो चुकी है। एक डाटा मैं और भी
यहां पर सेव कर देता हूं।
और यहां पर इमेज को चेंज कर देता हूं। इस
पे क्लिक करके यहां पर डिलीट कर दूंगा। और
नई इमेज अपलोड कर देता हूं।
यहां पर सेंड पे क्लिक करता हूं। और यह
देखिए यह पोस्ट नंबर टू भी क्रिएटेड हो
चुकी है। अब मैं एक बार आपको डाटाबेस चेक
कराता हूं। डाटाबेस से पहले जो हमने पिछले
टैब में एपीआई क्रिएट की थी यहां पर पोस्ट
इसको भी चेक करा देता हूं। तो यहां पर यह
सारा डाटा फैच करके लाएगी। पहले तो यहां
पर कुछ भी नहीं आ रहा था। मगर अब यहां पर
दो पोस्ट फैच हो के आ जाएंगी। यह देखिए
यहां पर पोस्ट नंबर वन आ चुकी है। और इसी
के साथ पोस्ट नंबर टू भी यहां पर दिख रही
है।
मैं यहां डाटाबेस में आ गया। मैं वापस से
जाता हूं अपने डाटाबेस में sm एपीआई और
यहां पर पोस्ट पे क्लिक करता हूं। तो आप
यहां पर देख रहे हैं कि यहां पर दो पोस्ट
क्रिएट हो चुकी हैं। पोस्ट नंबर वन, पोस्ट
नंबर टू। उनकी इमेज भी आ रही हैं।
मैं यहां पर आपको जहां इमेजज़ अपलोड होती
हैं, वह भी सारा फोल्डर चेक करा देता हूं।
यहां पर एक फोल्डर होता है जिसका नाम होता
है पब्लिक। अब पब्लिक के अंदर यहां पर आप
देख रहे हैं एक फोल्डर आ चुका है अपलोड्स
नाम से। यह फोल्डर पहले नहीं था। इसके
अंदर देखो तीन इमेजज़ भी आ चुकी हैं। मैंने
पहले भी एक बार ट्राई किया था, तो इमेज
अपलोड हो गई थी। मगर डाटा सेव नहीं हुआ
था। तो, वह इमेज भी आपको दिखा रहा है यहां
पर।
अब इसके बाद मैं क्या करता हूं? इसके बाद
यहां पर
सिंगल पोस्ट को चेक करने के लिए भी अपना
राउट चेक कर लेता हूं यहां पर। मैं उसके
लिए यहां पर आता हूं।
और यहां पर स्लैश डाल के मैं अपना पोस्ट
का नंबर दूंगा। आपको कौन सी नंबर वाली
पोस्ट देखनी है। वन देखनी है टू। तो देखिए
जैसे मैं टू नंबर की पोस्ट देखना चाहता
हूं। उसके बाद मैं यहां पर आकर ऑथराइजेशन
में जाऊंगा। यहां पर टोकन चेंज करूंगा
बियरर टोकन। यह देखिए वही टोकन आ रहा है।
अब मुझे बॉडी के अंदर कुछ भी पास नहीं
करना क्योंकि मुझे सिर्फ डाटा को रीड करना
है। तभी मैंने यहां पर सेट किया है गेट।
तो यह मेरे पास सिंगल पोस्ट का डाटा ले
आएगा पोस्ट नंबर टू का। यह देखिए यहां पर
पोस्ट नंबर टू भी आ चुकी है।
अब अगर इसे मुझे मॉडिफाई करना है तो मैं
क्या करूंगा? मैं इसी यूआरएल को कॉपी कर
लेता हूं।
नए टैब में आता हूं।
यहां पर इसे पेस्ट करता हूं। सबसे पहले
मुझे यहां पर चेंज कर देना पोस्ट।
आप यहां पर सोच रहे होंगे यहां पर हम
अपडेट के लिए तो पुट यूज़ करते हैं। मगर
पोस्ट क्यों कर रहे हैं? देखिए आप यहां पर
पोस्ट लिखेंगे। मगर यहां पर आप हेडर के
अंदर जाकर जो हेडर नाम का टैब है उसमें
पास करेंगे पुट। मैं आपको करके दिखाता
हूं। तो इसके लिए सबसे पहले मैं क्या करता
हूं? यहां पर ऑथराइजेशन में जाता हूं। और
यहां पर बियर टोकन चेंज करूंगा। हेडर में
जाकर यहां पर लिखूंगा मेथड पुट। तो मेथड
आपने सिंपल नहीं लिखना। यहां पर लिखना है
अंडरस्कोर मेथड। यह देखिए यह पोस्टमैन का
तरीका है। मगर एक्चुअल कोड में हम ऐसे
नहीं लिखते हैं। और यहां पर वैल्यू में दे
देंगे पुट। क्योंकि हम डाटा को अपडेट करने
वाले हैं। अब इसके बाद मैं बॉडी में आऊंगा
और अपनी फॉर्म के डाटा में चला जाऊंगा। अब
यहां पर मैं अपनी किस फील्ड को अपडेट करना
चाहता हूं वो मैं बताऊंगा। तो देखिए जैसे
मैं यहां पर एक टाइटल ले लेता हूं।
डिस्क्रिप्शन
और उसके साथ में इमेज। अब यहां पर आकर
टाइटल में मैं लिख देता हूं न्यू टाइटल और
यहां पर लिख देता हूं न्यू डिस्क्रिप्शन
डाटा और इमेज मैं अगर चेंज करना चाहता हूं
तो यहां पर लिखूंगा फाइल और यहां पर जाकर
न्यू फाइल अपलोड कर देता हूं। यह देखिए।
अब मैंने सारी फील्ड्स के डाटा को यहां पे
चेंज कर दिया है। और यहां पर आईडी आ रहा
है कि किस आईडी को मेरे को अपडेट करना है।
उस आईडी का नंबर है टू। और यहां पर हेडर
आपको जरूर पास करना है। हेडर में लिखना है
पुट क्योंकि हम अपडेट कर रहे हैं। ऊपर
मेथड रहेगा पोस्ट और ऑथराइजेशन में यहां
पर टोकन ले लेना है। यह वाला। अब मैं यहां
पर सेंड पे क्लिक करता हूं।
यहां पर एक एरर आ चुका है। मैं यहां पर
प्रीव्यू में देखता हूं। यहां पर देखिए एक
एरर का मैसेज शो कर रहा है। तो यहां पर यह
एरर दे रहा है जो है वो है पोस्टमैन इज़
नॉट सपोर्टेड। देखिए यहां पर हमने पोर्ट
लिया है। तभी यह एरर मैसेज दे रहा है
पोस्ट का ही। यह अभी भी पोस्ट ही ले रहा
है इसको। तो यह मैंने मेरे को लग रहा है
मैंने हेडर के अंदर पास की। यहां पर नहीं
करेंगे। यहां पर हटा देता हूं। इसको हम
बॉडी में पास करके देख लेते हैं। यहां पर
तो यहां पर मैं देता हूं मेथड और इसकी
वैल्यू यहां पर ले लेता हूं पुट। यह देखिए
आपको फॉर्म डाटा के अंदर इसी मेथड को यहां
पर डिक्लेअर करना है। अब यहां पर मैं
दोबारा से सेंड पे क्लिक करता हूं। अब
यहां पे मैसेज चेंज हो चुका है। इसका मतलब
हमने ठीक लिखा है। मगर मैसेज चेंज है।
यहां पर एरर दूसरा आ रहा है। और वह कह रहा
है इंटरनल सर्वर एरर। प्रॉपर्टी इमेज डज़
नॉट एकिस्ट इन दिस कलेक्शन।
यहां पर आता हूं। दोबारा से कोड देखता
हूं।
देखिए एक चीज तो है यहां पर। यहां पर
मैंने नीचे भी एक वेरिएबल लिया पोस्ट और
सेम वेरिएबल इधर भी लिया पोस्ट। एक तो
इसका नाम चेंज कर देता हूं। इसका रीनेम कर
दिया पोस्ट इमेज। अब जहां-जहां पर भी
पोस्ट लिया था ऊपर वहां पर चेंज कर देता
हूं।
दूसरा इसमें सबसे पहले क्या करते हैं? जो
भी हमारी इमेज यहां पर अपलोड हो रही है
यहीं से मेरे को लग रहा है एरर आ रहा है।
इसको रिटर्न करके देखते हैं।
क्योंकि यहां पर मैंने वेयर कंडीशन नहीं
लगाई है। वेयर लगाना जरूरी था। एक बार चेक
कर लेते हैं। यहां पर मैंने फाइल को सेव
किया। मैं यहां पर आया और दोबारा से सेंड
करता हूं।
और यह देखिए यहां पर रिस्पांस में एक जसन
आई है। यहां पर आप देख रहे हैं। यहां पर
दो आईडीज आ चुके हैं। पोस्ट नंबर वन का भी
आ रहा है। पोस्ट नंबर टू का भी आ रहा है।
क्योंकि यहां पर मैंने सेलेक्ट के साथ
वेयर मेथड का यूज़ नहीं किया है। तो उसका
यूज़ भी मैं कर लेता हूं।
इसको बेसिकली मैं नेक्स्ट लाइन में कर
लेता हूं।
और यहां पर लिखता हूं आईडी डॉलर आईडी।
यहां से हमारे को यह वैल्यू मिल रही है।
एक बार मैं ऊपर चेक कर लेता हूं। मैंने
ऊपर भी ऐसे ही लिखा था। ये देखिए यहां पर
भी ऐसे ही लिखा है। ये हमारे को ये आईडी
मिल रही है अपडेट के केस में। इसी को मैं
यहां से पास कर रहा हूं। अभी मैं इसी को
रिटर्न करके देखता हूं कि हमारे पास अब
क्या आता है। मैं यहां पर आया दोबारा से
सेंड करता हूं। यह देखिए अब हमारे पास
सिंगल डाटा आया है। मतलब कि सिंगल पोस्ट।
यहीं से गड़बड़ हो रही थी। अब इसमें से
मेरे को यह वाली इमेज चाहिए। तो इसके लिए
मैं यहां पर इस एरे में जाऊंगा ज़ीरो। और
उसके बाद हमारे कॉलम का नाम है इमेज। फाइल
को सेव किया। यहां आया सेंड पे क्लिक। और
यह देखिए इमेज का नाम आ रहा है। तो मेरे
को क्या करना है? मेरे को एग्जैक्ट यही
वाला कोड यहां पर भी डाल देना है।
तो यहां से इस लाइन को रिमूव कर देता हूं।
तो जो भी हमारे को डाटा मिलेगा उसी सेम
इमेज को पहले मैंने चेक करना है। यहां कोई
वैल्यू नल तो नहीं है। खाली तो नहीं है।
अगर उसके अंदर कोई भी वैल्यू होगी तो पहले
हम उस इमेज का पाथ उठाएंगे और उसको यहां
से अनलिंक कर देंगे। मतलब कि उसको इमेज को
डिलीट कर देंगे फोल्डर में से। उसके बाद
हमारी नई इमेजज़ जो अपलोड की है उसको यहां
से अपलोड करेंगे। तो यहां से मैंने फाइल
को सेव किया। मैं यहां पर आया। अब मैं
दोबारा से इस फॉर्म को जो मैंने फिल कर
रखा है इसको यहां से सेंड करता हूं। और यह
देखिए अब यह डाटा अपडेट हो चुका है। यहां
पर स्टेटस आ गया ट्रू। मैसेज भी आ चुका है
और पोस्ट भी आ चुका है। अब इसके बाद हमारा
लास्ट काम है कि हमने लास्ट वाली एपीआई
चेक करनी है जिसमें हम डाटा को रिमूव करने
वाले हैं। तो उसके लिए मैं यहां पे क्या
करता हूं? इसी यूआरएल को कॉपी कर लेता
हूं।
और यहां पर जाकर इसको पेस्ट कर देता हूं।
इससे पहले जो अभी हमने डाटा अपडेट किया है
उसको मैं आपको डाटाबेस में चेक भी करा
देता हूं। देखिए मैं यहां पर आया फाइल को
रिफ्रेश किया और यह देखिए यहां पर डाटा
अपडेट हो चुका है। यहां पर नई इमेज भी आ
चुकी है।
अब मैं यहां पर आया पोस्टमैन में। अब यहां
पर मुझे डाटा को डिलीट करना है। अब यहां
पर मुझे गेट की जगह पे यहां पे या तो मैं
पोस्ट ले सकता हूं और बॉडी में जाके मेथड
पास कर सकता हूं। जैसे मैंने अभी आपको
दिखाया या यहां पर सीधा डिलीट भी यूज़ कर
सकता हूं। तो मैंने ऊपर डिलीट ही ले लिया
और किस पोस्ट को यहां पर डिलीट करना है
आईडी नंबर वन को या फिर टू को। तो यहां पर
मैं वन नंबर की पोस्ट को डिलीट करना चाहता
हूं। तो यहां पर मैं लिख देता हूं वन। अब
मैं यहां पर जा के सेंड पे क्लिक करूंगा।
और यहां पर एक एरर आ चुकी है। मैं प्रव्यू
पर जाता हूं। यहां पर एरर मैसेज शो हो रहा
है। राउट लॉग इन नॉट डिफाइंड। इस एरर
मैसेज का मतलब है कि आपने लॉग इन नहीं कर
रखा। लॉगिन हुआ यूजर ही पोस्ट को रिमूव कर
सकता है। तो उसके लिए मैं यहां पे जाऊंगा
ऑथराइजेशन में और यहां पर अपना टोकन पास
कर दूंगा। यह देखिए यह टोकन ही हमारा
लॉगिन होने का सबूत है कि हम लॉगिन हैं।
अब हम इस राउट को असेस कर सकते हैं। तो
यहां पर मैंने क्या किया? सेंड पर क्लिक
किया।
और यह हमारा डाटा तो रिमूव हो चुका है। अब
यहां पर एक एरर शो हो रहा है। यह कह रहा
है इस नाम की कोई फाइल नहीं है। मैंने अभी
फोल्डर को ओपन किया है। जैसे यहां पर लिखा
है अपलोड्स के अंदर स्लैश नहीं लगा हुआ।
यह देख रहे हैं आप। तो इसी का मैसेज आ रहा
है। तो मैं यहां पर आता हूं। स्क्रॉल करता
हूं। और यह देखिए यहां पर जब मैंने
अपलोड्स लगाया। यहां पर भी मुझे बाद में
स्लैश देना है। यह देखिए। यहां पर मैंने
फाइल को सेव किया। अब मैं आपको दूसरा डाटा
रिमूव करके दिखाता हूं। तो यहां पर पोस्ट
नंबर टू दे देता हूं। और यहां पर मैं सेंड
पर क्लिक करता हूं। और यह देखिए यह मेरा
डाटा सक्सेसफुली रिमूव हो चुका है। आप
यहां पर देख रहे हैं।
तो हमारे डाटाबेस में से एक डाटा रिमूव हो
चुका है। मैं आपको एक बार चेक भी करा देता
हूं। यह देखिए मैं यहां पर आया। फाइल को
रिफ्रेश किया। अब यहां पर आप देख रहे हैं
कि यहां पर एक ही डाटा आ रहा है। पोस्ट
नंबर वन। इसको भी मैं आपको रिमूव करके
दिखाता हूं। यहां पर आया और आईडी नंबर ऊपर
पास कर देता हूं वन। अब यहां पर मैं क्लिक
करता हूं सेंड पर
और यह देखिए यह डाटा भी हमारा रिमूव हो
चुका है। मैं डाटाबेस में आया। फाइल को
रिफ्रेश किया और यह देखिए अब हमारी पोस्ट
में कोई भी डाटा नहीं है। तो यहां पर आपने
देखा कि कैसे हमने एपीआई का यूज़ करके
पूरा क्रूड सिस्टम बना लिया है। अब यह
हमारा कोड काफी लेंथी है। आप देख रहे
होंगे। यह काफी आपको कंफ्यूज कर सकता है।
हम इस कोड को छोटा कर सकते हैं। देखिए,
हमने बार-बार हर मेथड के अंदर रिस्पांस को
सेंड किया है। या तो उसका स्टेटस ट्रू है
या फिर फॉल्स। बस उसके अंदर मैसेज ही अलग
होता है या डाटा अलग हो सकता है। तो ऐसे
केसेस में हम क्या कर सकते हैं? हम एक
कॉमन कंट्रोलर की फाइल बना सकते हैं। जो
इसके अंदर हम यूज़ कर सकते हैं। या कोई
अपनी हेल्पर क्लास भी बना सकते हैं। उसको
भी मैं आपको एक बार बना के दिखा देता हूं।
तो उसके लिए मैं यहां पे क्या करूंगा? मैं
टर्मिनल को ओपन करता हूं और यहां पर एक नई
कंट्रोलर की फाइल बनाता हूं जिसका नाम है
बेस कंट्रोलर
और यह एपीआई फोल्डर के अंदर ही बनेगी।
यह देखिए यह फाइल बन चुकी है। इस फाइल को
मैं ओपन भी कर लेता हूं। यहां पर यह देखिए
खुल गया। अब यहां पर मैं दो मेथड्स बना
लेता हूं। एक तो है सेंड रिस्पांस और एक
एरर के केस में आएगा सेंड एरर। तो दोनों
मेथड्स पहले मैं क्रिएट कर लेता हूं
और इस मेथड के अंदर दो पैरामीटर्स पास कर
देता हूं। एक तो है रिजल्ट। जब भी हम इसे
कॉल करेंगे तो यहां पर एक डाटा भेजेंगे
जिसको हम अंदर यूज़ करेंगे। और यहां पर आ
जाएगा यूजर का मैसेज जो शो करना चाहता है।
अब यह मेथड बेसिकली एक रिस्पांस ही सेंड
करेगा ताकि हमें बार-बार वह कोड ना लिखना
पड़े।
देखिए सक्सेस के केस में आ जाएगा यहां पर
ट्रू।
एक मैं ले लेता हूं डाटा के लिए और एक मैं
ले लेता हूं यूजर के मैसेज के लिए।
यहां पर जो भी हमारे पास यूजर डाटा भेजेगा
उसको मैं यहां से सेट कर देता हूं। और जो
भी मैसेज आएगा हमारे पास इस वेरिएबल में
इसको मैं यहां पे सेट कर देता हूं। और
लास्ट में जब भी हम इस मेथड को कॉल करेंगे
जिसका नाम है सेंड रिस्पांस। यह रिटर्न
करेगा jसन। तो रिटर्न में मैं लिखूंगा
रिस्पांस
जेसन। जसन में दो पैराटर्स आएंगे। सबसे
पहले आ जाएगा हमारा यह रिस्पांस
जिसको jसन मेथड ऑटोमेटिकली jसन में
कन्वर्ट कर देगा। और सेकंड पैरामीटर में
हम यहां पर उसका रिस्पांस कोड सेंड कर
देंगे। तो मैं लिख रहा हूं 200। जब भी
सक्सेस रेट होगा तो यही मेथड कॉल होगा। और
जब एरर आएगी तब हम इसी का कॉपी कर लेते
हैं। एक मेथड और बना लेते हैं। उसका नाम
मैं रख देता हूं सेंड एरर।
इसमें भी हमारे पास एक मैसेज आएगा और एक
एरर का पूरा जो भी रिस्पांस आएगा वह भी हम
यहां पर एक्सेप्ट करेंगे। तो उसके लिए मैं
यहां पर वेरिएबल ले लेता हूं एरर यहां पर
एरर मैसेज
जिसके अंदर बेसिकली बहुत सारा डाटा आने
वाला है। तो इसके लिए मैं इसको एरे बना
लेता हूं पहले से ही। यह एक एरे एम्प्टी
एरे और यहां पर जो भी एरर का कोड है उसके
लिए भी यहां पर एक वेरिएबल ले लेता हूं।
तो देखिए जैसे मैं यहां पर रिस्पांस कोड
के लिए एक कोड ले रहा हूं। कोड नाम का एक
वेरिएबल। इसकी डिफॉल्ट वैल्यू सेट कर देता
हूं। जैसे 404 अगर यूजर कोई और मैसेज का
कोड सेंड करेगा तो वही यहां पर आकर लग
जाएगा। तो अब अंदर आकर मुझे क्या करना है?
यहां पर सक्सेस में
यहां पर फॉल्स सेट कर देना है। और यहां पर
डाटा कुछ नहीं होगा। और मैसेज में मैं
यहां पर एरर शो कर दूंगा। यह एरर मैं यहां
से कॉपी करता हूं। यहां पर पेस्ट। अब जो
यह हमारा एरर मैसेज है जो लाराव अपनी तरफ
से देता है। यहां पे तो हमारा खुद का
मैसेज आएगा। अब जो लाराव अपनी तरफ से
मैसेज देगा वह ऑप्शनल होंगे। तो उसके लिए
मैं यहां पर अलग से कंडीशन बनाता हूं।
पहले चेक करूंगा कि इसके अंदर कोई वैल्यू
है कि नहीं। अगर यह एंप्टी नहीं है डॉलर
एरर मैसेज तो ये इफ स्टेटमेंट के अंदर आ
जाएगा। और इसके अंदर जो यह हमारा रिस्पांस
है इसमें एक की ले लेता हूं। जैसे हमने दो
कीज़ ऊपर ली हैं सक्सेस और मैसेज। यहां पर
ये एक ऑप्शनल की ले रहा हूं जिसका नाम
होगा डाटा। अगर इसके अंदर कोई वैल्यू आएगी
तब हम वही वैल्यू यहां पर सेट कर देंगे जो
हमारे पास इस वेरिएबल के अंदर आएगी।
यह देखिए। तो पहले मैंने चेक किया इसके
अंदर वैल्यू एंप्टी तो नहीं है। अगर वो
एंप्टी नहीं है तभी यह की बनेगी और इसके
अंदर हम एरर का मैसेज शो कर देंगे। और
रिटर्न में यही हम jसन रिटर्न करने वाले
हैं। और जो कोड होगा वह यही कोड होगा जो
यूजर सेंड करेगा। अगर वह कुछ भी सेंड नहीं
करता तब यहां पर सेट हो जाएगा 44।
यह देखिए। अब मैंने क्या किया? मैंने यहां
पर रिस्पांस के लिए दो अलग से मेथड्स बना
लिए। अब जो यह मैंने कंट्रोलर की फाइल
बनाई है बेस कंट्रोलर, इसको मुझे यूज़ करना
है अपनी पोस्ट कंट्रोलर के अंदर। अब तक हम
क्या कर रहे थे? जो हमारा पोस्ट कंट्रोलर
था, वो एक्सटेंड करता था कंट्रोलर फाइल
को। मगर अब यह एक्सटेंड करेगा बेस
कंट्रोलर को। और बेस कंट्रोलर किसको
एक्सटेंड करेगी? कंट्रोलर को। मतलब कि हम
बेस कंट्रोलर इन्हहेरिट कर रही है
कंट्रोलर क्लास को। और आगे हमारी पोस्ट
कंट्रोलर इन्हहेरिट करेगी बेस कंट्रोलर
को। तो यहां पर मैं लिख देता हूं बेस
कंट्रोलर। जैसे ही मैं इस पर क्लिक
करूंगा, अब ये फाइल मेरे को ऊपर इंक्लूड
भी करनी है। तो उसके लिए मैं यहां पे क्या
करूंगा? यहां पे मुझे इस पूरी बेस
कंट्रोलर फाइल का पाथ देना है। तो यहां पर
मैं लिख लेता हूं यूज़ सबसे पहले ऐप
फोल्डर। फिर उसके अंदर एचटीटीपी फोल्डर और
उसके अंदर बेस कंट्रोलर। ये देखिए एज। अब
इसका एक नाम भी देता हूं। बेस कंट्रोलर
हम पूरी इस फाइल को इस वाले वेरिएबल से
यूज़ करेंगे। यह कांस्टेंट वेरिएबल बन गया
जिसको मैंने यहां पे यूज़ कर लिया। अब इस
कोड को छोटा कैसे करना है वो भी मैं आपको
दिखा देता हूं। जहां पर हम अभी इतनी सारी
लाइनें लिख रहे थे। ये लिखने की कोई जरूरत
नहीं है। यहां पर मैं रिटर्न कर देता हूं।
सबसे पहले मैं यहां पर दिस लिखूंगा। दिस
का मतलब क्या है? जो हमारी यही क्लास है
पोस्ट कंट्रोलर इसी का ही एक मेथड यूज़ कर
रहा हूं इस वाले मेथड के अंदर। तो हमारे
उस मेथड का नाम क्या है? उसका नाम है सेंड
रिस्पांस जिसके अंदर दो पैरामीटर मुझे
सेंड करने हैं। मतलब कि एज ए वैल्यू।
तो पहले में मुझे डाटा सेंड करना है। तो
यहां पर मैं डाटा सेंड कर देता हूं। पहले
मैं इसे ऐसे सेट कर रहा था। अभी यह लाइन
तो मैं रिमूव कर दूंगा। और साथ में मुझे
एक मैसेज भी सेंड करना है। तो मैसेज मैं
यहीं से कॉपी कर लेता हूं और यहां पे सेट
कर देता हूं। यह देखिए। अब यह इतनी सारी
लाइनें लिखने की कोई जरूरत नहीं है। इसको
मैं रिमूव कर देता हूं। यह स्टेटस अपने आप
इसी मेथड से आ जाएगा। मैसेज मैंने यहां पर
सेट कर दिया और डाटा मैंने यहां पे सेट कर
दिया। बिल्कुल उसी सीक्वेंस में करना है
जैसे आपने यहां लिया है। मैसेज सेकंड
पैरामीटर है और रिजल्ट फर्स्ट पैरामीटर।
तो यह मैंने सेट कर दिया है। अब इस लाइन
को मैं यहां से रिमूव कर देता हूं। यह
देखिए कोड कितना सिंपल हो चुका है। अब
बिल्कुल यही सक्सेस का कोड मैं यहां से
कॉपी करके जहां-जहां पर भी सक्सेस लिखा था
वहां पर मैं सेट कर देता हूं। यह देखिए
यहां पर भी किया था। तो यहां पर यह वाला
मैसेज सेट कर देता हूं। और यह डाटा मैंने
सेंड करना था। यहां से कॉपी करके यहां पर
सेट कर देता हूं। यह देखिए इसको भी मैं
रिमूव कर देता हूं। बिल्कुल इसी तरह से
यहां पर भी एक सक्सेस का मैसेज है। मैं
ऊपर से कोड कॉपी कर लेता हूं। एक सेकंड।
अब यहां पर यह वाला मैसेज मुझे सेंड करना
है।
और यहां पर डाटा यह वाली लाइंस को मैं
रिमूव कर देता हूं। अब इसके बाद हमारे पास
यहां पर अपडेट के केस में भी यहां पर
सक्सेस मैसेज शो होगा। सबसे नीचे यहां पर
देखिए
यहां पर मैं क्या करता हूं? यहां पर भी
मैं यह वाला मैसेज कॉपी करके
सेट कर लेता हूं। और यहां पे पोस्ट ही है।
इसको मैं कॉपी कर लेता हूं। और लास्ट में
आ गया हमारा डिलीट का सक्सेस मैसेज। और यह
मैसेज मैंने यहां से कॉपी किया।
यहां पे सेट और यहां पे आ गया पोस्ट। अब
इस कोड को भी मैं रिमूव कर देता हूं। तो
आप देख रहे हैं कि हमारा कोड कितना सिंपल
हो चुका है। यह रिस्पांस जो है वह jसन का
ही रिस्पांस है।
यहां से मैंने रिमूव नहीं किया। इसको भी
मैं रिमूव कर देता हूं। यह देखिए। अब
बिल्कुल इसी तरह से जहां पे हमारा एरर से
रिलेटेड यह फॉल्स से रिलेटेड हमारा मैसेज
आ रहा था। उसको भी मैं चेंज कर लेता हूं।
तो सबसे ऊपर जाते हैं। पहले मैं यहां पे
देखता हूं। यहां पे आप देख रहे हैं कि फेल
के केस में यहां पर मैं यह फेल का स्टेटस
सेंड कर रहा था। अब इसकी जगह पे मैं अपना
कोड पेस्ट करता हूं। यह देखिए। अब सेंड
रिस्पांस नहीं यूज करूंगा। यहां पर यूज
करूंगा दूसरा मेथड। उसका नाम मैंने क्या
रखा था? उसका नाम मैंने रखा है सेंड एरर।
अब सबसे पहले इसमें एरर का मैसेज आएगा। और
सेकंड पैरामीटर देना जरूरी नहीं है। अगर
लाराव खुद से कोई एरर दे रहा है, तो हम
यहां पर सेंड करेंगे एज ए सेकंड पैरामीटर।
और अगर हम थर्ड पैरामीटर यहां पे सेट करते
हैं, तो वह वैल्यू सेट हो जाएगी। वरना
यहां पर डिफ़ॉल्ट वैल्यू सेट की हुई है
404। तो, मैं वापस आता हूं। और यहां पर यह
मेरा खुद का एरर मैसेज है। इसको मैं यहां
से सेट कर देता हूं। यह देखिए। और सेकंड
पैरामीटर में जो यह लाराव अपनी तरफ से एरर
मैंने यहां पे शो किए हैं। जो लारावल देगा
उसको यहां से कॉपी करके मैं यहां पर सेट
कर देता हूं। यह देखिए। तो इस कोड की अब
कोई जरूरत नहीं है। इसको मैं हटा देता
हूं। और इस पूरे कोड को मैं कॉपी कर लेता
हूं। अब जहां पर भी मेरा एरर मैसेज शो हो
रहा था, वहीं पर मैं इसको सेट कर दूंगा।
यह देखिए, यहां पर भी यह मैसेज आ रहा है।
तो यहां पर मुझे यह ऊपर का कोड डिलीट कर
देना है।
देखिए सब जगह सेट हो चुका है। अब यह हमारा
कोड जो फाइल है काफी छोटी हो चुकी है
क्योंकि यहां पर मैंने दूसरी फाइल को यूज़
कर लिया है जिसका नाम है बेस कंट्रोलर। अब
यही फाइल से हमारा रिस्पांस जाएगा JSON के
फॉर्मेट में। तो यहां पर मैं इस फाइल को
सेव करता हूं और एक बार बेस कंट्रोलर के
अंदर आकर आपको सारे डाटा को फैच करके
दिखाता हूं। अब हमारे पास मेरे ख्याल से
कोई डाटा नहीं है। मैं सेंड पे क्लिक करता
हूं। तो देखिए यहां पर खाली आ चुका है।
यहां पे कोई भी डाटा नहीं है। एक बार मैं
नया डाटा ऐड करके देख लेता हूं। तो यहां
पर मैंने लिख दिया पोस्ट नंबर थ्री। पोस्ट
नंबर थ्री ये इमेज है। इसको मैं सेंड कर
देता हूं।
यह देखिए यह इमेज भी सेव हो चुकी है। अब
मैं दोबारा से इसी वाली फाइल में आता हूं।
जिसमें सारा डाटा हम चेक कर सकते हैं।
सेंड पे क्लिक करता हूं।
और यह देखिए यह पूरा रिस्पांस हमारा
बिल्कुल एज इट इज आ रहा है। जैसे पहले आ
रहा था। तो यह था हमारा एपीआई। हमने एपीआई
को क्रिएट करना सीखा यहां पर। अब नेक्स्ट
वीडियो में हम सीखेंगे कि हम इन एपीआई को
अजैक्स के साथ कैसे यूज़ कर सकते हैं। और
फ्यूचर में सीखेंगे कि इन एपीआई को व्यू
जेएस और रिएक्ट js के साथ कैसे सीखेंगे।
तो इसे नेक्स्ट वीडियो को भी देखना मत
भूलिए।
होप सो आपको यह हमारा वीडियो ट्यूटोरियल
अच्छा लगा होगा। अगर अच्छा लगा है तो
वीडियो को प्लीज [संगीत] लाइक करना मत
भूलिए। अगर आप ऐसे ही रेगुलर अपडेट चाहते
हैं तो हमारे चैनल Yahoo बाबा को
सब्सक्राइब [संगीत] करना मत भूलिए। थैंक
यू।
