व्यायाम - एक वेब एपीआई परियोजना बनाएँ
यह मॉड्यूल .NET 8.0 SDK का उपयोग करता है। सुनिश्चित करें कि आपके पास .NET 8.0 आपके पसंदीदा आदेश टर्मिनल में निम्न आदेश चला कर स्थापित है:
dotnet --list-sdks
आउटपुट निम्न उदाहरण के जैसा प्रकट होता है:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
सुनिश्चित करें कि 8 से शुरू होने वाला संस्करण सूचीबद्ध है। यदि कोई भी सूचीबद्ध नहीं है या आदेश नहीं मिला है, तो नवीनतम .NET 8.0 SDK स्थापितकरें.
एक वेब एपीआई प्रोजेक्ट बनाएं और एक्सप्लोर करें
वेब API के साथ काम करने के लिए .NET प्रोजेक्ट सेट करने के लिए, हम Visual Studio Code का उपयोग करते हैं। विजुअल स्टूडियो कोड में एक एकीकृत टर्मिनल शामिल है जो एक नई परियोजना बनाना आसान बनाता है। यदि आप कोड संपादक का उपयोग नहीं करना चाहते हैं, तो आप टर्मिनल में इस मॉड्यूल में कमांड चला सकते हैं।
Visual Studio कोड में, फ़ाइल खोलें>फ़ोल्डरखोलें का चयन करें।
अपनी पसंद के स्थान में ContosoPizza नाम का एक नया फ़ोल्डर बनाएँ और फिर फ़ोल्डर का चयन करें चुनें.
मुख्य मेनू से व्यू>टर्मिनल का चयन करके विजुअल स्टूडियो कोड से एकीकृत टर्मिनल खोलें।
टर्मिनल विंडो में, निम्न कमांड को कॉपी और पेस्ट करें:
dotnet new webapi -controllers -f net8.0यह आदेश नियंत्रकों का उपयोग करता है जो मौसम पूर्वानुमानों की सूची देता है जो ContosoPizza.csproj नामक C# प्रोजेक्ट फ़ाइल के साथ नियंत्रकों का उपयोग करने वाले मूल वेब API प्रोजेक्ट के लिए फ़ाइलें बनाता है. यदि आपको कोई त्रुटि मिलती है, तो सुनिश्चित करें कि आपके पास .NET 8 SDK स्थापित है।
महत्वपूर्ण
वेब एपीआई परियोजनाएं डिफ़ॉल्ट रूप से सुरक्षित
httpsहैं। यदि आपको समस्याएँ हैं, तो ASP.NET कोर HTTPS विकास प्रमाणपत्र कॉन्फ़िगर करें।प्रोजेक्ट डीबग करने के लिए संपत्ति जोड़ने के लिए आपको Visual Studio कोड से एक संकेत प्राप्त हो सकता है। संवाद में हाँ का चयन करें।
कमांड एक ASP.NET कोर प्रोजेक्ट टेम्पलेट उपनाम का उपयोग करता है जो webapi सी #-आधारित वेब एपीआई प्रोजेक्ट को मचान करता है। एक ContosoPizza निर्देशिका बनाई गई है। इस निर्देशिका में .NET पर चलने वाला एक ASP.NET कोर प्रोजेक्ट है। प्रोजेक्ट का नाम निर्देशिका नाम से मेल खाता ContosoPizza है।
अब आपके पास इन फ़ाइलों और निर्देशिकाओं तक पहुंच होनी चाहिए:
-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| ContosoPizza.http -| Program.cs -| WeatherForecast.csनिम्न फ़ाइलों और निर्देशिकाओं की जाँच करें:
नाम या क़िस्म Controllers/ HTTP समापन बिंदु के रूप में प्रदर्शित सार्वजनिक विधियों के साथ कक्षाएं शामिल हैं। Program.cs सेवाओं और ऐप की HTTP अनुरोध पाइपलाइन को कॉन्फ़िगर करता है, और इसमें ऐप का प्रबंधित प्रवेश बिंदु होता है। ContosoPizza.csproj प्रोजेक्ट के लिए कॉन्फ़िगरेशन मेटाडेटा शामिल है. ContosoPizza.http REST APIs सीधे Visual Studio कोड से परीक्षण करने के लिए कॉन्फ़िगरेशन शामिल है।
वेब API बनाएँ और परीक्षण करें
कमांड शेल में निम्न .NET कोर CLI आदेश चलाएँ:
dotnet runपूर्ववर्ती आदेश:
- वर्तमान निर्देशिका में प्रोजेक्ट फ़ाइल का पता लगाता है।
- इस परियोजना के लिए किसी भी आवश्यक परियोजना निर्भरताओं को पुनः प्राप्त और स्थापित करता है।
- प्रोजेक्ट कोड संकलित करता है।
- वेब API को HTTP और HTTPS समापन बिंदु दोनों पर ASP.NET Core Kestrel वेब सर्वर के साथ होस्ट करता है।
HTTP के लिए 5000 से 5300 तक का पोर्ट चुना जाता है, और HTTPS के लिए 7000 से 7300 तक, जब प्रोजेक्ट बनाया जाता है। आप प्रोजेक्ट की launchSettings.json फ़ाइल को संपादित करके विकास के दौरान उपयोग किए जाने वाले पोर्ट को आसानी से बदल सकते हैं। यह मॉड्यूल सुरक्षित
localhostURL का उपयोग करता है जो .httpsआपको निम्न के समान आउटपुट मिलना चाहिए, यह दर्शाता है कि आपका ऐप चल रहा है:
Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:7294 info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5118 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Developmentयदि आप इस ऐप को अपनी मशीन पर चला रहे हैं, तो आप परिणामी पृष्ठ को देखने के लिए आउटपुट (पूर्ववर्ती मामले में,
https://localhost:7294) में प्रदर्शित HTTPS लिंक पर एक ब्राउज़र को निर्देशित कर सकते हैं। इस पोर्ट को याद रखें, क्योंकि आप इसे पूरे मॉड्यूल में उपयोग करते हैं जहां{PORT}उपयोग किया जाता है।महत्वपूर्ण
यदि आप किसी भी अनपेक्षित व्यवहार का सामना करते हैं तो टर्मिनल आउटपुट की जाँच करें। बिल्ड विफल रहता है या अन्य त्रुटियाँ होती हैं, तो लॉग फ़ाइल की जानकारी समस्या निवारण में आपकी मदद करता है। जैसे ही आप कोड में परिवर्तन करते हैं, आपको कीबोर्ड पर CTRL+C का चयन करके और कमांड को फिर से चलाकर
dotnet runवेब API को रोकना होगा।एक वेब ब्राउज़र खोलें और यहां जाएं:
https://localhost:{PORT}/weatherforecastआपको इस उदाहरण के समान JSON आउटपुट देखना चाहिए:
[ { "date": "2021-11-09T20:36:01.4678814+00:00", "temperatureC": 33, "temperatureF": 91, "summary": "Scorching" }, { "date": "2021-11-09T20:36:01.4682337+00:00", "temperatureC": -8, "temperatureF": 18, "summary": "Cool" }, // ... ]
वैकल्पिक: फ़ाइलों के साथ .http एक्सप्लोर करें
प्रोजेक्ट में ContosoPizza.http शामिल है, एक फ़ाइल जिसका उपयोग मानक स्वरूप के माध्यम से API समापन बिंदुओं का परीक्षण करने के लिए किया जाता है.
.http फ़ाइलें Visual Studio सहित कई एकीकृत विकास परिवेशों (IDEs) में और REST क्लाइंट एक्सटेंशन स्थापित के साथ Visual Studio कोड के अंदर समर्थित हैं।
ContosoPizza.http फ़ाइल खोलें।
कुछ आईडीई में, यह फ़ाइल @ContosoPizza_HostAddress चर और एक जीईटी कमांड कॉलिंग /weatherforecast/ के साथ पूर्व-कॉन्फ़िगर की गई है जो application/json स्वीकार करती है।
यदि यह आपकी फ़ाइल में मौजूद है, तो GET के ऊपर भेजे गए अनुरोध कमांड का चयन करें जो चल रही सेवा को अनुरोध भेजता है।
इस कमांड को कॉल करने से आउटपुट के साथ एक प्रतिक्रिया विंडो खुलती है जो हमने ब्राउज़र में देखी थी:
HTTP/1.1 200 OK Connection: close Content-Type: application/json; charset=utf-8 Date: Wed, 17 Jan 2024 16:46:40 GMT Server: Kestrel Transfer-Encoding: chunked [ { "date": "2024-01-18", "temperatureC": -2, "temperatureF": 29, "summary": "Warm" }, { "date": "2024-01-19", "temperatureC": 24, "temperatureF": 75, "summary": "Chilly" }, // .. ]
वैकल्पिक: कमांड लाइन HTTP REPL के साथ API एक्सप्लोर करें
मुख्य मेनू से टर्मिनल>नया टर्मिनल का चयन करके Visual Studio कोड से एक नया एकीकृत टर्मिनल खोलें, फिर निम्न आदेश चलाएँ:
dotnet tool install -g Microsoft.dotnet-httpreplपूर्ववर्ती आदेश .NET HTTP पठन-Eval-Print लूप (REPL) आदेश-पंक्ति उपकरण जो आप वेब API के लिए HTTP अनुरोध करने के लिए उपयोग स्थापित करता है।
निम्न कमांड चलाकर वेब एपीआई से कनेक्ट करें:
httprepl https://localhost:{PORT}वैकल्पिक रूप से,
HttpReplके चलने के दौरान किसी भी समय निम्न आदेश चलाएँ:connect https://localhost:{PORT}नोक
HttpReplयदि उपकरण चेतावनी देता है OpenAPI विवरण खोजने में असमर्थ, सबसे संभावित कारण एक अविश्वसनीय विकास प्रमाणपत्र है।HttpReplएक विश्वसनीय कनेक्शन की आवश्यकता है। इससे पहले कि आप जारी रख सकें, आपको अपने सिस्टम को इसके साथ डेव प्रमाणपत्र पर विश्वास करने के लिए कॉन्फ़िगरकरना होगाdotnet dev-certs https --trustनिम्न आदेश चलाकर उपलब्ध समापन बिंदुओं का अन्वेषण करें:
lsपूर्ववर्ती कमांड कनेक्टेड एंडपॉइंट पर उपलब्ध सभी एपीआई का पता लगाता है और उन्हें सूचीबद्ध करता है, जैसा कि निम्न आउटपुट में है:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]निम्न आदेश चलाकर
WeatherForecastसमापन बिंदु पर जाएँ:cd WeatherForecastपूर्ववर्ती कमांड
WeatherForecastसमापन बिंदु के लिए उपलब्ध एपीआई का आउटपुट दिखाता है:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]GETमें निम्न आदेश का उपयोग करकेHttpReplअनुरोध करें:getपूर्ववर्ती आदेश ब्राउज़र में समापन बिंदु पर जाने के समान अनुरोध करता
GETहै:HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Fri, 02 Apr 2021 17:31:43 GMT Server: Kestrel Transfer-Encoding: chunked [ { "date": 4/3/2021 10:31:44 AM, "temperatureC": 13, "temperatureF": 55, "summary": "Sweltering" }, { "date": 4/4/2021 10:31:44 AM, "temperatureC": -13, "temperatureF": 9, "summary": "Warm" }, // .. ]निम्न आदेश का उपयोग कर वर्तमान
HttpReplसत्र समाप्त करें:exitVisual Studio कोड में ड्रॉप-डाउन सूची में टर्मिनल पर
dotnetलौटें। अपने कीबोर्ड पर CTRL+C का चयन करके वेब API को बंद करें।
अब जब आपने वेब एपीआई बना लिया है, तो हम इसे पिज्जा वेब एपीआई की जरूरतों को पूरा करने के लिए संशोधित कर सकते हैं।