การสาธิต Web API อย่างง่ายพร้อมเอกสาร Swagger, การจัดการข้อผิดพลาดที่กำหนดเอง, การทดสอบหน่วย, JSONPATCH และเครื่องทดสอบ HTTPClient คุณสมบัติวิดีโอ YouTube สไตล์การสอนสำหรับบางหัวข้อ
วัตถุประสงค์ของโครงการ GitHub นี้คือการสาธิตแอปพลิเคชัน CRUD Web API อย่างง่ายพร้อมแบบฝึกหัดเพิ่มเติม (รวมถึงวิดีโอ YouTube) และการอ้างอิงรวมถึง Swagger, การทดสอบหน่วย, JsonPatch, การจัดการข้อผิดพลาดที่กำหนดเองและการแสดงผล, ผู้ทดสอบไคลเอ็นต์ ฯลฯ
โซลูชัน Visual Studio มีสามโครงการ: contosopizza (Web API), contosopizza.tests (การทดสอบหน่วย) และ webapiclient (แอพคอนโซล httpclient ง่าย ๆ )

คลาสคอนโทรลเลอร์รุ่นและคลาสบริการพร้อมบทสรุปสมาชิกของโครงการ Contosopizza Web API แสดงอยู่ด้านล่าง

นี่คือเว็บ API ง่าย ๆ ที่เป็นไปตามรูปแบบ CRUD มาตรฐาน (สร้างอ่านอัปเดตและลบ) ภาพตัวอย่างของการดำเนินการ API แสดงอยู่ด้านล่างตามหมวดหมู่






นี่คือการจับภาพหน้าจอบางส่วนที่แสดงการสาธิต Web API JSONPATCH


นี่คือการอ้างอิงรหัส
[
{
"value": "ModifiedPizza",
"path": "/name",
"op": "replace"
}
]

นี่เป็นวิดีโออ้างอิงการสอนที่ยอดเยี่ยมหากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการตั้งค่าการติดตั้งและการใช้ JsonPatch สำหรับโครงการ Web API ของคุณ
อัปเดตข้อมูลด้วย JSONPATCH | ซีรี่ส์ของผู้เริ่มต้นไปยังเว็บ APIs
JSONPATCH ใน ASP.NET CORE WEB API
โครงการบทช่วยสอนและการสาธิตนี้จะแสดงวิธีการตั้งค่ากำหนดค่าและรหัสตัวจัดการข้อผิดพลาดที่กำหนดเองอย่างง่ายสำหรับโครงการ Contoso Pizza Web API
นักพัฒนาควรวางแผนสำหรับข้อผิดพลาดที่ไม่มีการจัดการในรหัส โครงการ Contoso Pizza Web API แสดงให้เห็นถึงวิธีการทำเช่นนี้ ในการสาธิตจะมีการสร้างจุดสิ้นสุดที่มักจะมีข้อยกเว้นที่ไม่สามารถจัดการได้ โครงการมีตัวควบคุมข้อผิดพลาดที่กำหนดเองที่จัดการและบันทึกข้อยกเว้นก่อนที่จะส่งคืนวัตถุโมเดลปัญหามาตรฐานให้กับผู้ใช้ ตัวควบคุมข้อผิดพลาดถูกระบุในการกำหนดค่าโปรแกรมเพื่อกำหนดเส้นทางไปยังตัวควบคุมข้อผิดพลาดที่กำหนดเองเมื่อไม่ทำงานในสภาพแวดล้อมการพัฒนา สภาพแวดล้อมการพัฒนาถูกระบุภายใต้การตั้งค่าโปรไฟล์การเรียกร้องการดีบักโดยมีค่าเริ่มต้นการผลิตเว้นแต่จะระบุไว้เป็นอย่างอื่น
หากต้องการดูความแตกต่างในการแสดงข้อผิดพลาดระหว่างการพัฒนาและการผลิตให้เรียกใช้ API ก่อนในโหมดการพัฒนา ทดสอบจุดสิ้นสุดที่ก่อให้เกิดข้อยกเว้นที่ไม่สามารถจัดการได้เสมอ ใน UI Swagger คุณสามารถเห็นการตอบกลับและรายละเอียดข้อยกเว้น หน้าต่างเบราว์เซอร์มีมุมมองนักพัฒนาที่แยกต่างหากและสง่างามของผลลัพธ์ข้อผิดพลาด
ในการเรียกใช้ API ในโหมดการผลิตให้ลบตัวแปรสภาพแวดล้อมหรือตั้งค่าด้วยตนเองเป็นการผลิต เนื่องจาก Swagger UI ไม่ทำงานในโหมดการผลิตคุณจะต้องทดสอบจุดสิ้นสุด API ด้วยตนเองด้วย URL ผลลัพธ์สุดท้ายสำหรับผู้ใช้คือข้อผิดพลาดทั่วไปที่มีตัวระบุ ผู้ใช้จะสร้างตั๋วปัญหาด้วยข้อมูลนี้ บริษัท สามารถแก้ไขปัญหาการแก้ไขปัญหาโดยละเอียดที่ตรงกับตัวระบุข้อผิดพลาดกับการบันทึกภายในโดยละเอียดเพิ่มเติม

โครงการบทช่วยสอนและการสาธิตนี้จะแสดงวิธีเพิ่มตั้งค่ากำหนดค่าและตรวจสอบเอกสาร Swagger ไปยังโครงการนักพัฒนา WebAPI ของคุณ ผลลัพธ์สุดท้ายอยู่ในรหัส repo นี้
Swashbuckle และ Swagger เป็นเครื่องมือยอดนิยมสองอย่างที่ใช้สำหรับสร้างเอกสารนักพัฒนาสำหรับเว็บ API SwashBuckle เป็นแพ็คเกจที่สามารถเพิ่มลงในโครงการ ASP.NET Core Web API เพื่อรวม UI Swagger มันมีสามองค์ประกอบหลัก: swashbuckle.aspnetcore.swagger ซึ่งเป็นโมเดลวัตถุและมิดเดิลแวร์ Swashing เพื่อเปิดเผยวัตถุ SwaggerDocument เป็นจุดสิ้นสุด JSON; Swashbuckle.aspnetcore.swaggergen ซึ่งเป็นเครื่องกำเนิดไฟฟ้าที่สร้างวัตถุ Swaggerdocument โดยตรงจากเส้นทางคอนโทรลเลอร์และรุ่นของคุณ และ swashbuckle.aspnetcore.swaggerui ซึ่งเป็นรุ่นที่ฝังตัวของเครื่องมือ Swagger UI มันตีความ Swagger JSON เพื่อสร้างประสบการณ์ที่หลากหลายและปรับแต่งได้สำหรับการอธิบายฟังก์ชั่นเว็บ API Swagger (OpenAPI) เป็นข้อกำหนดทางภาษาที่ไม่เชื่อเรื่องพระเจ้าสำหรับการอธิบาย REST API ช่วยให้ทั้งคอมพิวเตอร์และมนุษย์เข้าใจความสามารถของ REST API โดยไม่ต้องเข้าถึงซอร์สโค้ดโดยตรง เป้าหมายหลักคือการลดจำนวนงานที่จำเป็นในการเชื่อมต่อบริการที่แยกออก ¹³⁴

โครงการบทช่วยสอนและการสาธิตนี้จะแสดงวิธีการตั้งค่ากำหนดค่าและโค้ด httpClient ง่าย ๆ สำหรับโครงการ Contoso Pizza Web API
ในวิดีโอ YouTube นี้เราจะได้เรียนรู้วิธีสร้างโครงการแอปพลิเคชันคอนโซลแบบง่ายที่เชื่อมต่อกับเว็บ API และทดสอบ วิดีโอรวมถึงการสาธิตสั้น ๆ ของโครงการที่ทำงานและส่งออกผลลัพธ์จาก API เราจะได้รับไฟล์ OpenAPI โดยใช้ webapi ของเราในพื้นที่ก่อนเพื่อแสดง UI Swagger ไฟล์ JSON สำหรับเว็บ API ของเราสามารถดาวน์โหลดและบันทึกลงในไดเรกทอรีโครงการของเราได้ มีวิดีโออื่นในซีรี่ส์เพลย์ลิสต์ที่แสดงวิธีการตั้งค่าและกำหนดค่าเอกสาร Swagger ขั้นตอนต่อไปคือการเพิ่มโครงการแอปพลิเคชันคอนโซลใหม่ลงในโซลูชันของเรา นี่จะเป็นแอปพลิเคชัน HTTPClient เพื่อเชื่อมต่อกับเว็บ API ของเรา ต่อไปเราจะเพิ่มการอ้างอิงบริการ OpenAPI จากไฟล์ Swagger UI JSON ที่เราบันทึกไว้ก่อนหน้านี้ Visual Studio จะสร้างคลาสรหัสไคลเอนต์โดยอัตโนมัติที่จำเป็นในการโต้ตอบกับ Contoso Pizza Web API เราจะดูคลาสรหัสที่สร้างโดยอัตโนมัติ ตัวสร้างต้องการทั้งอินสแตนซ์วัตถุ HTTPClient และ URL พื้นฐานของ Web API ที่กำลังรัน หากคุณเรียกใช้ Web API ของคุณในพื้นที่คุณสามารถค้นหาได้จากโปรไฟล์การเปิดตัวดีบัก ในที่สุดเราสามารถกำหนดรหัสโครงการของเราเพื่อสร้าง HTTPClient และการอ้างอิงบริการพร็อกซีไปยัง Contoso UI Pizza Web API และพยายามดึงพิซซ่าบางส่วน ตรวจสอบให้แน่ใจว่าแอปพลิเคชัน Web API ทำงานอยู่ในเครื่องก่อนเรียกใช้แอปพลิเคชันคอนโซล httpClient

โครงการบทช่วยสอนและการสาธิตนี้จะแสดงวิธีการตั้งค่ากำหนดค่าและรหัสการทดสอบหน่วยอย่างง่ายสำหรับโครงการ WebAPI
ในวิดีโอนี้เราจะหารือเกี่ยวกับวิธีการเขียนการทดสอบหน่วยอย่างง่ายสำหรับเว็บ API ด้วยการดำเนินการควบคุม CRUD เราจะใช้แพ็คเกจ XUNIT และ FACHEISEASY เพื่อเขียนการทดสอบ เราจะครอบคลุมพื้นฐานของการทดสอบหน่วยรวมถึงวิธีการตั้งค่าโครงการทดสอบวิธีการเขียนการทดสอบสำหรับการดำเนินการ CRUD แต่ละครั้งและวิธีการใช้ XUNIT และ FACHEITEASY เพื่อสร้างการเยาะเย้ยและต้นขั้ว นอกจากนี้เรายังจะหารือเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนการทดสอบหน่วยเช่นการทดสอบความเป็นอิสระและทำให้มั่นใจว่าพวกเขาอ่านและดูแลรักษาได้ง่าย

แม้ว่าจะมีการอ้างอิงแบบฝึกหัดวิดีโอและเอกสาร แต่โครงการนี้เป็นรหัสและสไตล์ของฉันอย่างสร้างสรรค์ในการสาธิตความเชี่ยวชาญด้านเทคนิคของฉันและมีส่วนร่วมในความรู้ด้านเทคโนโลยีโดยรวมเกี่ยวกับ GitHub ฉันได้ระบุแหล่งข้อมูลบางส่วนที่ฉันดึงตัวอย่างรหัสและความรู้
ซีรี่ส์ของผู้เริ่มต้นเป็น: เว็บ APIS
Microsoft Learn - สร้างเว็บ API ด้วยตัวควบคุม ASP.NET Core Controllers
ที่มา: การสนทนากับ Bing, 11/10/2023 (1) เริ่มต้นด้วย SwashBuckle และ ASP.NET CORE https: //learn.microsoft.com/en-us/asp .... (2) เอกสาร ASP.net Core Web API พร้อม Swagger/OpenAPI https: //learn.microsoft.com/en-us/asp .... (3) Swashbuckle และ Swashbuckle UI คืออะไร https: //stackoverflow.com/questions/4 .... (4) ปรับปรุงประสบการณ์นักพัฒนาซอฟต์แวร์ของ API ด้วยเอกสาร Swagger .... https: //learn.microsoft.com/en-us/tra .... เอกสารหลักของ ASP.net บน GitHub
JSONPATCH ใน ASP.NET CORE WEB API