व्यायाम - एक वेब एपीआई परियोजना बनाएँ

Complete

यह मॉड्यूल .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 का उपयोग करते हैं। विजुअल स्टूडियो कोड में एक एकीकृत टर्मिनल शामिल है जो एक नई परियोजना बनाना आसान बनाता है। यदि आप कोड संपादक का उपयोग नहीं करना चाहते हैं, तो आप टर्मिनल में इस मॉड्यूल में कमांड चला सकते हैं।

  1. Visual Studio कोड में, फ़ाइल खोलें>फ़ोल्डरखोलें का चयन करें।

  2. अपनी पसंद के स्थान में ContosoPizza नाम का एक नया फ़ोल्डर बनाएँ और फिर फ़ोल्डर का चयन करें चुनें.

  3. मुख्य मेनू से व्यू>टर्मिनल का चयन करके विजुअल स्टूडियो कोड से एकीकृत टर्मिनल खोलें।

  4. टर्मिनल विंडो में, निम्न कमांड को कॉपी और पेस्ट करें:

    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
    
  5. निम्न फ़ाइलों और निर्देशिकाओं की जाँच करें:

    नाम या क़िस्‍म
    Controllers/ HTTP समापन बिंदु के रूप में प्रदर्शित सार्वजनिक विधियों के साथ कक्षाएं शामिल हैं।
    Program.cs सेवाओं और ऐप की HTTP अनुरोध पाइपलाइन को कॉन्फ़िगर करता है, और इसमें ऐप का प्रबंधित प्रवेश बिंदु होता है।
    ContosoPizza.csproj प्रोजेक्ट के लिए कॉन्फ़िगरेशन मेटाडेटा शामिल है.
    ContosoPizza.http REST APIs सीधे Visual Studio कोड से परीक्षण करने के लिए कॉन्फ़िगरेशन शामिल है।

वेब API बनाएँ और परीक्षण करें

  1. कमांड शेल में निम्न .NET कोर CLI आदेश चलाएँ:

    dotnet run
    

    पूर्ववर्ती आदेश:

    • वर्तमान निर्देशिका में प्रोजेक्ट फ़ाइल का पता लगाता है।
    • इस परियोजना के लिए किसी भी आवश्यक परियोजना निर्भरताओं को पुनः प्राप्त और स्थापित करता है।
    • प्रोजेक्ट कोड संकलित करता है।
    • वेब API को HTTP और HTTPS समापन बिंदु दोनों पर ASP.NET Core Kestrel वेब सर्वर के साथ होस्ट करता है।

    HTTP के लिए 5000 से 5300 तक का पोर्ट चुना जाता है, और HTTPS के लिए 7000 से 7300 तक, जब प्रोजेक्ट बनाया जाता है। आप प्रोजेक्ट की launchSettings.json फ़ाइल को संपादित करके विकास के दौरान उपयोग किए जाने वाले पोर्ट को आसानी से बदल सकते हैं। यह मॉड्यूल सुरक्षित localhost URL का उपयोग करता है जो .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 को रोकना होगा।

  2. एक वेब ब्राउज़र खोलें और यहां जाएं:

    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 कोड के अंदर समर्थित हैं।

  1. ContosoPizza.http फ़ाइल खोलें।

    कुछ आईडीई में, यह फ़ाइल @ContosoPizza_HostAddress चर और एक जीईटी कमांड कॉलिंग /weatherforecast/ के साथ पूर्व-कॉन्फ़िगर की गई है जो application/json स्वीकार करती है।

  2. यदि यह आपकी फ़ाइल में मौजूद है, तो 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 एक्सप्लोर करें

  1. मुख्य मेनू से टर्मिनल>नया टर्मिनल का चयन करके Visual Studio कोड से एक नया एकीकृत टर्मिनल खोलें, फिर निम्न आदेश चलाएँ:

    dotnet tool install -g Microsoft.dotnet-httprepl
    

    पूर्ववर्ती आदेश .NET HTTP पठन-Eval-Print लूप (REPL) आदेश-पंक्ति उपकरण जो आप वेब API के लिए HTTP अनुरोध करने के लिए उपयोग स्थापित करता है।

  2. निम्न कमांड चलाकर वेब एपीआई से कनेक्ट करें:

    httprepl https://localhost:{PORT}
    

    वैकल्पिक रूप से, HttpRepl के चलने के दौरान किसी भी समय निम्न आदेश चलाएँ:

    connect https://localhost:{PORT}
    

    नोक

    HttpRepl यदि उपकरण चेतावनी देता है OpenAPI विवरण खोजने में असमर्थ, सबसे संभावित कारण एक अविश्वसनीय विकास प्रमाणपत्र है। HttpRepl एक विश्वसनीय कनेक्शन की आवश्यकता है। इससे पहले कि आप जारी रख सकें, आपको अपने सिस्टम को इसके साथ डेव प्रमाणपत्र पर विश्वास करने के लिए कॉन्फ़िगरकरना होगाdotnet dev-certs https --trust

  3. निम्न आदेश चलाकर उपलब्ध समापन बिंदुओं का अन्वेषण करें:

    ls
    

    पूर्ववर्ती कमांड कनेक्टेड एंडपॉइंट पर उपलब्ध सभी एपीआई का पता लगाता है और उन्हें सूचीबद्ध करता है, जैसा कि निम्न आउटपुट में है:

    https://localhost:{PORT}/> ls
    .                 []
    WeatherForecast   [GET] 
    
  4. निम्न आदेश चलाकर WeatherForecast समापन बिंदु पर जाएँ:

    cd WeatherForecast
    

    पूर्ववर्ती कमांड WeatherForecast समापन बिंदु के लिए उपलब्ध एपीआई का आउटपुट दिखाता है:

    https://localhost:{PORT}/> cd WeatherForecast
    /WeatherForecast    [GET]
    
  5. 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"
        },
        // ..
    ]
    
  6. निम्न आदेश का उपयोग कर वर्तमान HttpRepl सत्र समाप्त करें:

    exit
    
  7. Visual Studio कोड में ड्रॉप-डाउन सूची में टर्मिनल पर dotnet लौटें। अपने कीबोर्ड पर CTRL+C का चयन करके वेब API को बंद करें।

अब जब आपने वेब एपीआई बना लिया है, तो हम इसे पिज्जा वेब एपीआई की जरूरतों को पूरा करने के लिए संशोधित कर सकते हैं।