תרגיל - יצירת פרוייקט API באינטרנט
מודול זה משתמש ב- SDK של .NET 8.0. ודא ש- .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 רשומה. אם לא מופיעה פקודה או שהפקודה לא נמצאה, את ערכת ה- SDK העדכנית ביותר של .NET 8.0.
יצירה ועיון בפרוייקט API של אינטרנט
כדי להגדיר פרוייקט .NET לעבודה עם ה- API של האינטרנט, אנו משתמשים ב- Visual Studio Code. Visual Studio Code כולל מסוף משולב המקל על יצירת פרוייקט חדש. אם אינך מעוניין להשתמש בעורך קוד, באפשרותך להפעיל את הפקודות במודול זה במסוף.
ב- Visual Studio Code, בחר קובץ>פתיחת תיקיה.
צור תיקיה חדשה בשם ContosoPizza במיקום שתבחר ולאחר מכן בחר בחר תיקיה.
פתח את המסוף המשולב מ- Visual Studio Code על-ידי בחירה באפשרות הצג>מסוף מהתפריט הראשי.
בחלון המסוף, העתק והדבק את הפקודה הבאה:
dotnet new webapi -controllers -f net8.0פקודה זו יוצרת את הקבצים עבור פרוייקט API בסיסי של אינטרנט המשתמש בבקרים, יחד עם קובץ פרוייקט C# בשם ContosoPizza.csproj שמחזיר רשימה של תחזיות מזג אוויר. אם אתה מקבל שגיאה, ודא ש- SDK של .NET 8 מותקן.
חשוב
פרוייקטי API של אינטרנט מאובטחים עם
httpsכברירת מחדל. אם אתה נתקל בבעיות, קבע את התצורה ASP.NET אישור פיתוח של HTTPS ליבה.ייתכן שתקבל בקשה מ- Visual Studio Code כדי להוסיף נכסים כדי לאתר באגים בפרוייקט. בחר כן בתיבת הדו-שיח.
הפקודה משתמשת בתבנית ASP.NET Core עם כינוי webapi כדי למחוק פרוייקט API מבוסס C#. ספריה ContosoPizza נוצרה. ספריה זו מכילה ASP.NET Core שפועל ב- .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 API ישירות מ- Visual Studio Code.
בנה ובדוק את ה- API של האינטרנט
הפעל את הפקודה הבאה של .NET Core CLI במעטפת הפקודה:
dotnet runהפקודה הקודמת:
- מאתר את קובץ הפרוייקט בספריה הנוכחית.
- מאחזר ומתקין יחסי תלות נדרשים בפרוייקט עבור פרוייקט זה.
- מבצע קומפילציה של קוד הפרוייקט.
- מארח את ה- API של האינטרנט עם ASP.NET האינטרנט Core Kestrel הן בנקודות קצה של HTTP והן ב- HTTPS.
יציאה מ- 5000 עד 5300 נבחרת עבור HTTP, ומ- 7000 עד 7300 עבור HTTPS, כאשר הפרוייקט נוצר. באפשרותך לשנות בקלות את היציאות שאתה משתמש בהן במהלך הפיתוח על-ידי עריכת קובץ ה -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 המוצג בפלט (במקרה הקודם,
https://localhost:7294) כדי להציג את הדף המתוצא. זכור יציאה זו, מכיוון שאתה משתמש בה לאורך כל המודול שבו{PORT}נעשה שימוש.חשוב
בדוק את פלט המסוף אם אתה נתקל באופן פעולה בלתי צפוי. אם גירסת ה- Build נכשלת או אם מתרחשות שגיאות אחרות, המידע של קובץ יומן הרישום עוזר לך לפתור בעיות. בעת ביצוע שינויים בקוד, יהיה עליך להפסיק את ה- API של האינטרנט על-ידי בחירת CTRL+C בלוח המקשים והפעלה מחדש של
dotnet runהפקודה.פתח דפדפן אינטרנט ועבור אל:
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 יש תמיכה בכמה בסביבות פיתוח משולבות (IDEs), כולל Visual Studio ובתוך Visual Studio Code, כשהרחבת לקוח REST מותקנת.
פתח את הקובץ ContosoPizza.http.
במזהים מסוימים, קובץ זה מוגדר מראש עם משתני @ContosoPizza_HostAddress ו- GET command calling /weatherforecast/ שמקבל יישום/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" }, // .. ]
אופציונלי: סיור בממשקי API עם REPL של שורת הפקודה HTTP
פתח מסוף משולב חדש מ- Visual Studio Code על-ידי בחירת Terminal>New Terminal מהתפריט הראשי ולאחר מכן הפעל את הפקודה הבאה:
dotnet tool install -g Microsoft.dotnet-httpreplהפקודה הקודמת מתקינת את כלי שורת הפקודה .NET HTTP Read-Eval-Print Loop (REPL) שבו אתה משתמש כדי לבצע בקשות HTTP ל- API של האינטרנט.
התחבר ל- API של האינטרנט על-ידי הפעלת הפקודה הבאה:
httprepl https://localhost:{PORT}לחלופין, הפעל את הפקודה הבאה בכל עת
HttpReplפועל:connect https://localhost:{PORT}עצה
אם הכלי
HttpReplמזהיר לא ניתן למצוא תיאור OpenAPI, סביר להניח שהגורם לכך הוא אישור פיתוח לא מהימן.HttpReplדורש חיבור מהימן. לפני שתוכל להמשיך, עליך לקבוע את תצורת המערכת שלך כדי לתת אמון באישור devdotnet dev-certs https --trustגלה את נקודות הקצה הזמינות על-ידי הפעלת הפקודה הבאה:
lsהפקודה הקודמת מזהה את כל ממשקי ה- API הזמינים בנקודות הקצה המחוברות ומפרטת אותם, כמו בפלט הבא:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]עבור אל נקודת
WeatherForecastעל-ידי הפעלת הפקודה הבאה:cd WeatherForecastהפקודה הקודמת מציגה פלט של ממשקי API זמינים עבור
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הנוכחית באמצעות הפקודה הבאה:exitחזור למסוף
dotnetברשימה הנפתחת ב- Visual Studio Code. כבה את ה- API של האינטרנט על-ידי בחירת CTRL+C בלוח המקשים.
כעת, לאחר שיצרת את ה- API של האינטרנט, נוכל לשנות אותו כך שיקנה את הצרכים של API של האינטרנט.