
{"id":108154,"date":"2025-06-06T04:08:57","date_gmt":"2025-06-06T04:08:57","guid":{"rendered":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/"},"modified":"2025-06-06T04:09:00","modified_gmt":"2025-06-06T04:09:00","slug":"%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api","status":"publish","type":"product","link":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/","title":{"rendered":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API"},"content":{"rendered":"<table class=\"course-info-table\" border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width: 100%; margin-bottom: 20px; border-collapse: collapse;\">\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right; width: 40%;\">\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc<\/th>\n<td style=\"text-align: right;\">\u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; ASP.NET Core Web API Fundamentals<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc<\/th>\n<td style=\"text-align: right;\">\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0632\u0628\u0627\u0646<\/th>\n<td style=\"text-align: right;\">\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627 \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0641\u0627\u0631\u0633\u06cc<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u0648\u0639 \u0645\u062d\u0635\u0648\u0644<\/th>\n<td style=\"text-align: right;\">\u0622\u0645\u0648\u0632\u0634 \u0648\u06cc\u062f\u06cc\u0648\u06cc\u06cc<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u062d\u0648\u0647 \u062a\u062d\u0648\u06cc\u0644<\/th>\n<td style=\"text-align: right;\">\u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0627\u0646\u0644\u0648\u062f\u06cc<\/td>\n<\/tr>\n<\/table>\n<div style=\"\r\n  background-color: #FFFBEA;\r\n  border: 1px solid #FCD34D;\r\n  border-left: 6px solid #FBBF24;\r\n  padding: 20px;\r\n  border-radius: 10px;\r\n  margin-top: 30px;\r\n  font-family: 'Vazirmatn', sans-serif;\r\n  color: #78350F;\r\n  line-height: 1.8;\r\n  box-shadow: 0 4px 12px rgba(0,0,0,0.04);\r\n\">\r\n  <strong style=\"display: block; font-size: 1.1rem; margin-bottom: 10px;\">\u062a\u0648\u062c\u0647 \u0645\u0647\u0645:<\/strong>\r\n  <p style=\"margin: 0;\">\r\n    \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc <span style=\"font-weight: bold;\">\u062f\u0627\u0646\u0644\u0648\u062f\u06cc<\/span> \u0628\u0648\u062f\u0647 \u0648 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 <span style=\"font-weight: bold;\">\u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0641\u0627\u0631\u0633\u06cc<\/span> \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f.\r\n  <\/p>\r\n  <p style=\"margin: 8px 0 0 0;\">\r\n    \u062d\u062f\u0627\u06a9\u062b\u0631 \u062a\u0627 <strong>\u06f2\u06f4 \u0633\u0627\u0639\u062a \u067e\u0633 \u0627\u0632 \u0633\u0641\u0627\u0631\u0634<\/strong>\u060c \u0644\u06cc\u0646\u06a9 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062f\u0648\u0631\u0647 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0633\u0627\u062e\u062a\u0647 \u0648 \u062c\u0647\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0627\u0631\u0633\u0627\u0644 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\r\n  <\/p>\r\n  <p style=\"margin: 8px 0 0 0;\">\r\n    \u062c\u0647\u062a \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u0627\u062a\u0633\u200c\u0627\u067e \u0628\u0627 \u0634\u0645\u0627\u0631\u0647 <strong>09395106248<\/strong> \u06cc\u0627 \u0622\u06cc\u062f\u06cc \u062a\u0644\u06af\u0631\u0627\u0645\u06cc <strong>@ma_limbs<\/strong> \u062f\u0631 \u062a\u0645\u0627\u0633 \u0628\u0627\u0634\u06cc\u062f.\r\n  <\/p>\r\n<\/div>\r\n\r\n\n<article class=\"violin-complex-pieces\" style=\"font-family: 'Vazirmatn', sans-serif;color: #2E2E2E;line-height: 1.75;max-width: 800px;margin: 40px auto;padding: 30px;background: #FFFFFF;border-radius: 12px;box-shadow: 0 6px 20px rgba(0,0,0,0.05);\">\n<h1>\u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API<\/h1>\n<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632 \u062a\u0648\u0633\u0639\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u060c \u0631\u0627\u0628\u0637\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc (APIs) \u0633\u062a\u0648\u0646 \u0641\u0642\u0631\u0627\u062a \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0628\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627 \u0648 \u062e\u062f\u0645\u0627\u062a \u0645\u062e\u062a\u0644\u0641 \u0647\u0633\u062a\u0646\u062f. <span class='highlight'>ASP.NET Core Web API<\/span> \u0627\u0628\u0632\u0627\u0631\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0648 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0627\u0632 \u0645\u0627\u06cc\u06a9\u0631\u0648\u0633\u0627\u0641\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0633\u0627\u062e\u062a API\u0647\u0627\u06cc RESTful \u06a9\u0627\u0631\u0622\u0645\u062f \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc \u0627\u0632 Pluralsight\u060c &#8220;\u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API Fundamentals&#8221;\u060c \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u062c\u0627\u0645\u0639 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0627\u06cc\u0646 \u062d\u0648\u0632\u0647 \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a \u0648 \u0634\u0645\u0627 \u0631\u0627 \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 \u062a\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631 \u0647\u0645\u0631\u0627\u0647\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u062a\u0648\u0633\u0639\u0647 \u0628\u06a9\u200c\u0627\u0646\u062f \u0645\u062f\u0631\u0646 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0647\u0633\u062a\u06cc\u062f\u060c \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0646\u0642\u0637\u0647\u200c\u06cc \u0634\u0631\u0648\u0639\u06cc \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<h2>\u0622\u0646\u0686\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0645\u0648\u062e\u062a<\/h2>\n<div class='section-box'>\n<p>\u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u0646\u0634 \u0648 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 Web API\u0647\u0627\u06cc \u062d\u0631\u0641\u0647\u200c\u0627\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>ASP.NET Core<\/span> \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u062f\u0648\u0631\u0647\u060c \u0642\u0627\u062f\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f:<\/p>\n<ul>\n<li><span class='highlight'>\u0633\u0627\u062e\u062a \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Web API\u0647\u0627:<\/span> \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc API \u0631\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0648\u0644\u06cc\u0647 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f. \u0628\u0627 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc ASP.NET Core \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc (Routing):<\/span> \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 <span class='highlight'>attribute routing<\/span> \u0648 <span class='highlight'>convention-based routing<\/span> \u0622\u0634\u0646\u0627 \u0634\u062f\u0647 \u0648 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc URL\u0647\u0627\u06cc API \u0641\u0631\u0627 \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u062a\u0627 API\u0647\u0627\u06cc\u06cc \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0648 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a CRUD:<\/span> \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u062f\u0647\u0627\u06cc HTTP (<span class='highlight'>GET, POST, PUT, DELETE<\/span>) \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f\u060c \u062e\u0648\u0627\u0646\u062f\u0646\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0648 \u062d\u0630\u0641 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0639\u0645\u0644\u06cc \u062a\u062c\u0631\u0628\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0634\u0627\u0645\u0644 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0627\u0633\u062a.<\/li>\n<li><span class='highlight'>\u0645\u062f\u0644\u200c\u0633\u0627\u0632\u06cc \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (Model Binding &#038; Validation):<\/span> \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u062a\u0635\u0627\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc C# \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0635\u062d\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0645\u06cc\u200c\u0622\u0645\u0648\u0632\u06cc\u062f. \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>Data Annotations<\/span> \u0648 <span class='highlight'>Fluent Validation<\/span> \u0627\u0633\u062a.<\/li>\n<li><span class='highlight'>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627\u0647\u0627 \u0648 \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627:<\/span> \u0631\u0627\u0647\u06a9\u0627\u0631\u0647\u0627\u06cc \u062c\u0627\u0645\u0639 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627\u0647\u0627\u06cc API\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 (\u0645\u0627\u0646\u0646\u062f <span class='highlight'>BadRequest<\/span>\u060c <span class='highlight'>NotFound<\/span>) \u0648 \u0644\u0627\u06af\u200c\u06af\u06cc\u0631\u06cc \u062e\u0637\u0627\u0647\u0627 \u0628\u0631\u0627\u06cc \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc \u0628\u0647\u062a\u0631 \u0631\u0627 \u0641\u0631\u0627 \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authentication &#038; Authorization):<\/span> \u0628\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0645\u0646\u06cc\u062a \u062f\u0631 API\u0647\u0627\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>JWT (JSON Web Tokens)<\/span> \u0648 \u0633\u06cc\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0646\u0642\u0634 \u06cc\u0627 \u0627\u062f\u0639\u0627\u060c \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u06cc\u062f \u062a\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 API\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u062a\u0633\u062a \u0648 \u0645\u0633\u062a\u0646\u062f\u0633\u0627\u0632\u06cc API:<\/span> \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u0633\u062a \u06a9\u0631\u062f\u0646 API\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f <span class='highlight'>Unit Testing<\/span> \u0648 <span class='highlight'>Integration Testing<\/span>) \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <span class='highlight'>Swagger\/OpenAPI<\/span> \u0628\u0631\u0627\u06cc \u0645\u0633\u062a\u0646\u062f\u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u062a\u0639\u0627\u0645\u0644\u06cc API \u0631\u0627 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u0627\u0633\u062a\u0642\u0631\u0627\u0631 (Deployment) Web API:<\/span> \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 API\u0647\u0627\u06cc ASP.NET Core \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 IIS\u060c Docker \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u0645\u0627\u0646\u0646\u062f <span class='highlight'>Azure App Service<\/span> \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627 \u0648 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc:<\/span> \u0628\u0627 \u0631\u0639\u0627\u06cc\u062a \u0627\u0635\u0648\u0644 SOLID \u0648 \u0633\u0627\u06cc\u0631 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc\u060c API\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0648 \u0628\u0627 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u200c\u062a\u0631 \u0645\u0646\u0627\u0633\u0628 \u0647\u0633\u062a\u0646\u062f.<\/li>\n<\/ul>\n<\/div>\n<h2>\u0645\u0632\u0627\u06cc\u0627\u06cc \u0634\u0631\u06a9\u062a \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647<\/h2>\n<div class='section-box'>\n<p>\u0634\u0631\u06a9\u062a \u062f\u0631 \u062f\u0648\u0631\u0647 &#8220;\u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API Fundamentals&#8221; \u0645\u0632\u0627\u06cc\u0627\u06cc \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u062f\u0627\u0631\u062f \u0648 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0633\u06cc\u0631 \u0634\u063a\u0644\u06cc \u062e\u0648\u062f \u06cc\u06a9 \u06af\u0627\u0645 \u0628\u0647 \u062c\u0644\u0648 \u0645\u06cc\u200c\u0628\u0631\u062f:<\/p>\n<ul>\n<li><span class='highlight'>\u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc:<\/span> \u0628\u0627 \u062a\u0633\u0644\u0637 \u0628\u0631 <span class='highlight'>ASP.NET Core Web API<\/span>\u060c \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647 \u0628\u0627 \u062f\u0627\u0646\u0634 \u0645\u062f\u0631\u0646 \u0648 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0627\u0632\u0627\u0631 \u06a9\u0627\u0631 \u0645\u0637\u0631\u062d \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627 \u062f\u0631 \u0645\u0635\u0627\u062d\u0628\u0647\u200c\u0647\u0627\u06cc \u0634\u063a\u0644\u06cc \u0648 \u067e\u06cc\u0634\u0631\u0641\u062a \u062d\u0631\u0641\u0647\u200c\u0627\u06cc \u0634\u0645\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0624\u062b\u0631 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f.<\/li>\n<li><span class='highlight'>\u0627\u06cc\u062c\u0627\u062f \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc:<\/span> \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0633\u0627\u062e\u062a \u0628\u06a9\u200c\u0627\u0646\u062f\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0648\u0628\u060c \u0645\u0648\u0628\u0627\u06cc\u0644 \u0648 \u062f\u0633\u06a9\u062a\u0627\u067e \u0631\u0627 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\u200c\u0627\u06cc \u06a9\u0647 \u0642\u0635\u062f \u0633\u0627\u062e\u062a \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0631\u0627 \u062f\u0627\u0631\u062f\u060c \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a.<\/li>\n<li><span class='highlight'>\u062f\u0631\u06a9 \u0639\u0645\u06cc\u0642 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 .NET:<\/span> \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0646\u0647 \u062a\u0646\u0647\u0627 API \u0628\u0644\u06a9\u0647 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u0647\u0645\u06cc \u0627\u0632 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 <span class='highlight'>.NET Core<\/span> \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u062f\u0631\u06a9 \u0634\u0645\u0627 \u0631\u0627 \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0644\u062a\u0641\u0631\u0645 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062f\u0631 \u0633\u0627\u06cc\u0631 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc .NET \u0646\u06cc\u0632 \u0642\u0648\u06cc\u200c\u062a\u0631 \u0634\u0648\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0645\u062a\u062e\u0635\u0635\u0627\u0646:<\/span> \u0645\u062d\u062a\u0648\u0627\u06cc Pluralsight \u062a\u0648\u0633\u0637 \u0645\u062a\u062e\u0635\u0635\u0627\u0646 \u0635\u0646\u0639\u062a \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627\u060c \u0628\u0647\u200c\u0631\u0648\u0632 \u0628\u0648\u062f\u0646 \u0645\u0637\u0627\u0644\u0628 \u0648 \u067e\u0648\u0634\u0634 \u062c\u0627\u0645\u0639 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><span class='highlight'>\u0622\u0645\u0627\u062f\u06af\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631:<\/span> \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0627\u0631 \u0628\u0631 \u0631\u0648\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u200c\u062a\u0631 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u060c \u0645\u0627\u0646\u0646\u062f <span class='highlight'>\u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627<\/span> \u0648 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639\u200c\u0634\u062f\u0647\u060c \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<\/div>\n<h2>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u062f\u0648\u0631\u0647<\/h2>\n<div class='section-box'>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647\u0631\u0647\u200c\u0645\u0646\u062f\u06cc \u062d\u062f\u0627\u06a9\u062b\u0631\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0648 \u062f\u0631\u06a9 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u062f\u0627\u0646\u0634 \u0627\u0648\u0644\u06cc\u0647 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0627\u0644\u0628\u062a\u0647\u060c \u062d\u062a\u06cc \u0628\u062f\u0648\u0646 \u0647\u0645\u0647 \u0627\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627 \u0646\u06cc\u0632 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0648\u0631\u0647 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u0637\u0627\u0644\u0639\u0647 \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0622\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<ul>\n<li><span class='highlight'>\u0645\u0628\u0627\u0646\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc C#:<\/span> \u062f\u0631\u06a9 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0635\u0644\u06cc C# \u0645\u0627\u0646\u0646\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u060c \u0627\u0634\u06cc\u0627\u0621\u060c \u0645\u062a\u062f\u0647\u0627\u060c \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u060c \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u060c \u0634\u0631\u0637\u200c\u0647\u0627 \u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062c\u0631\u06cc\u0627\u0646 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/li>\n<li><span class='highlight'>\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u067e\u0631\u0648\u062a\u06a9\u0644 HTTP:<\/span> \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0648 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc HTTP\u060c \u0645\u062a\u062f\u0647\u0627 (GET, POST, PUT, DELETE)\u060c \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a HTTP (\u0645\u062b\u0644\u0627\u064b 200 OK\u060c 404 Not Found\u060c 500 Internal Server Error) \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 API\u0647\u0627 \u0631\u0627 \u0628\u0647\u062a\u0631 \u062f\u0631\u06a9 \u06a9\u0646\u06cc\u062f.<\/li>\n<li><span class='highlight'>\u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 .NET Core:<\/span> \u0627\u06af\u0631\u0686\u0647 \u062f\u0648\u0631\u0647 \u0627\u0632 \u067e\u0627\u06cc\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0645\u0641\u0627\u0647\u06cc\u0645 ASP.NET Core \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0622\u0634\u0646\u0627\u06cc\u06cc \u06a9\u0644\u06cc \u0628\u0627 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 .NET Core \u0648 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627 \u062f\u0631 \u0622\u0646 \u0645\u0641\u06cc\u062f \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/li>\n<li><span class='highlight'>\u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc):<\/span> \u0627\u06af\u0631\u0686\u0647 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0639\u0645\u06cc\u0642 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0646\u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f\u060c \u0627\u0645\u0627 \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 SQL \u06cc\u0627 ORM\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f <span class='highlight'>Entity Framework Core<\/span>) \u062f\u0631\u06a9 \u0634\u0645\u0627 \u0631\u0627 \u0627\u0632 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<\/ul>\n<\/div>\n<h2>\u0633\u0627\u062e\u062a\u0627\u0631 \u0648 \u0633\u0631\u0641\u0635\u0644\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u062f\u0648\u0631\u0647<\/h2>\n<div class='section-box'>\n<p>\u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0648 \u0645\u0646\u0637\u0642\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u062a\u0627 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0631\u0627 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0648 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u06cc\u0627\u0641\u062a\u0647 \u06a9\u0646\u062f. \u0633\u0631\u0641\u0635\u0644\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u067e\u0631\u062f\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0639\u0628\u0627\u0631\u062a\u0646\u062f \u0627\u0632:<\/p>\n<ul>\n<li>\n        <strong>\u0645\u0642\u062f\u0645\u0647 \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647:<\/strong><\/p>\n<p>\u0634\u0631\u0648\u0639 \u0628\u0627 \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 <span class='highlight'>ASP.NET Core Web API<\/span>\u060c \u0645\u0639\u0645\u0627\u0631\u06cc RESTful \u0648 \u062a\u0641\u0627\u0648\u062a \u0622\u0646 \u0628\u0627 ASP.NET Web API \u0633\u0646\u062a\u06cc. \u0633\u067e\u0633 \u0628\u0647 \u0646\u0635\u0628 SDK\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc .NET Core\u060c Visual Studio \u06cc\u0627 VS Code \u0648 \u0627\u06cc\u062c\u0627\u062f \u0627\u0648\u0644\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u062e\u0627\u0644\u06cc API \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u062f.<\/p>\n<\/li>\n<li>\n        <strong>\u0633\u0627\u062e\u062a \u0627\u0648\u0644\u06cc\u0646 API \u0648 \u06a9\u0646\u062a\u0631\u0644\u0631\u0647\u0627:<\/strong><\/p>\n<p>\u0645\u0639\u0631\u0641\u06cc \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u06a9\u0646\u062a\u0631\u0644\u0631\u0647\u0627 (Controllers) \u0648 \u0627\u06a9\u0634\u0646\u200c\u0647\u0627 (Actions) \u062f\u0631 ASP.NET Core. \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0645\u062a\u062f <span class='highlight'>GET<\/span> \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <span class='highlight'>Postman<\/span> \u06cc\u0627 Swagger UI \u0628\u0631\u0627\u06cc \u062a\u0633\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0648 \u062f\u0631\u06a9 \u067e\u0627\u0633\u062e\u200c\u0647\u0627.<\/p>\n<\/li>\n<li>\n        <strong>\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0648 Model Binding:<\/strong><\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u062f\u0642\u06cc\u0642\u200c\u062a\u0631 <span class='highlight'>Routing<\/span> \u0634\u0627\u0645\u0644 Route Templates\u060c Attribute Routing \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Route Constraints \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0642\u06cc\u0642\u200c\u062a\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0686\u06af\u0648\u0646\u06af\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0648 \u0627\u062a\u0635\u0627\u0644 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0627\u0632 URI\u060c Body \u0648 Header \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0627 <span class='highlight'>Model Binding<\/span> \u0628\u0647 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc C# \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n        <strong>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0627 POST\u060c PUT \u0648 DELETE:<\/strong><\/p>\n<p>\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062a\u062f\u0647\u0627\u06cc <span class='highlight'>POST<\/span> \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0646\u0627\u0628\u0639 \u062c\u062f\u06cc\u062f\u060c <span class='highlight'>PUT<\/span> \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u062c\u0648\u062f \u0648 <span class='highlight'>DELETE<\/span> \u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u0622\u0646\u200c\u0647\u0627. \u06a9\u0627\u0631 \u0628\u0627 DTO\u0647\u0627 (Data Transfer Objects) \u0648 \u062a\u0628\u062f\u06cc\u0644 \u0622\u0646\u200c\u0647\u0627 \u0628\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u0648 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc API.<\/p>\n<\/li>\n<li>\n        <strong>\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627:<\/strong><\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>Data Annotations<\/span> \u0648 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0645\u0627\u0646\u0646\u062f Fluent Validation \u0628\u0631\u0627\u06cc \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627 \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0635\u062d\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627. \u0646\u062d\u0648\u0647 \u0628\u0631\u062e\u0648\u0631\u062f \u0628\u0627 \u062e\u0637\u0627\u0647\u0627\u06cc \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0648 \u0633\u0627\u06cc\u0631 \u0627\u0633\u062a\u062b\u0646\u0627\u0647\u0627 \u0648 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u062e\u0637\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 (\u0645\u0627\u0646\u0646\u062f <span class='highlight'>400 Bad Request<\/span> \u06cc\u0627 <span class='highlight'>404 Not Found<\/span>).<\/p>\n<\/li>\n<li>\n        <strong>\u06a9\u0627\u0631 \u0628\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 Entity Framework Core):<\/strong><\/p>\n<p>\u0627\u062f\u063a\u0627\u0645 API \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647. \u0645\u0639\u0631\u0641\u06cc <span class='highlight'>Entity Framework Core<\/span> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 ORM (Object-Relational Mapper)\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc DbContext \u0648 \u0627\u0646\u062c\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a CRUD \u0628\u0631 \u0631\u0648\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647. \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0634\u0627\u0645\u0644 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 SQL Server \u06cc\u0627 SQLite \u0627\u0633\u062a.<\/p>\n<\/li>\n<li>\n        <strong>\u0627\u0645\u0646\u06cc\u062a: \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc:<\/strong><\/p>\n<p>\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0645\u0646\u06cc\u062a \u062f\u0631 API. \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>JWT (JSON Web Tokens)<\/span> \u0628\u0631\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u0686\u06af\u0648\u0646\u06af\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc <span class='highlight'>Role-based Authorization<\/span> \u0648 <span class='highlight'>Policy-based Authorization<\/span> \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Attribute\u0647\u0627\u06cc <span class='highlight'>[Authorize]<\/span> \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0647 \u0627\u06a9\u0634\u0646\u200c\u0647\u0627.<\/p>\n<\/li>\n<li>\n        <strong>\u0646\u0633\u062e\u0647\u200c\u0628\u0646\u062f\u06cc \u0648 \u0645\u0633\u062a\u0646\u062f\u0633\u0627\u0632\u06cc API:<\/strong><\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u0627\u0647\u0645\u06cc\u062a \u0648 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0646\u0633\u062e\u0647\u200c\u0628\u0646\u062f\u06cc API \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0637\u0648\u0644 \u0632\u0645\u0627\u0646. \u0645\u0639\u0631\u0641\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <span class='highlight'>Swagger\/OpenAPI<\/span> (\u0627\u0632 \u0637\u0631\u06cc\u0642 <span class='highlight'>Swashbuckle<\/span>) \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u0633\u062a\u0646\u062f\u0627\u062a API \u0648 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062a\u0639\u0627\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0633\u062a API\u0647\u0627.<\/p>\n<\/li>\n<li>\n        <strong>\u062a\u0633\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 API:<\/strong><\/p>\n<p>\u0646\u0648\u0634\u062a\u0646 \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0627\u062d\u062f (Unit Tests) \u0648 \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647\u200c\u0633\u0627\u0632\u06cc (Integration Tests) \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0635\u062d\u062a \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc API. \u0633\u067e\u0633 \u0628\u0647 \u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 API\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 Docker \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc (\u0645\u0627\u0646\u0646\u062f Azure App Service \u06cc\u0627 Heroku) \u067e\u0631\u062f\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<\/li>\n<li>\n        <strong>\u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627:<\/strong><\/p>\n<p>\u0645\u0639\u0631\u0641\u06cc \u0645\u0641\u0627\u0647\u06cc\u0645\u06cc \u0645\u0627\u0646\u0646\u062f <span class='highlight'>Dependency Injection<\/span>\u060c Logging\u060c Caching \u0648 <span class='highlight'>Middleware<\/span>\u0647\u0627. \u0628\u0631\u0631\u0633\u06cc \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0645\u062a\u062f\u0627\u0648\u0644 \u0648 \u0646\u06a9\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a API\u0647\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f\u060c \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc\u060c \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f\u06cc.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<h2>\u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0648 \u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc<\/h2>\n<div class='section-box'>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0646\u0642\u0627\u0637 \u0642\u0648\u062a \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647\u060c \u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0622\u0645\u0648\u062e\u062a\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0633\u0627\u062e\u062a\u0627\u0631 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0633\u0627\u062f\u0647 \u062f\u0631 ASP.NET Core Web API \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a CRUD \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u0641\u0631\u0636\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<pre style=\"background: #e9ecef; padding: 15px; border-radius: 8px; overflow-x: auto; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 0.9em;\"><code>\nusing Microsoft.AspNetCore.Mvc;\nusing System.Collections.Generic;\n\n[ApiController]\n[Route(\"api\/[controller]\")] \/\/ defines the base route for the controller\npublic class ProductsController : ControllerBase\n{\n    private readonly List&lt;string&gt; _products = new List&lt;string&gt; { \"Laptop\", \"Mouse\", \"Keyboard\" };\n\n    \/\/ GET api\/products\n    [HttpGet]\n    public ActionResult&lt;IEnumerable&lt;string&gt;&gt; Get()\n    {\n        return Ok(_products); \/\/ Returns 200 OK with the list of products\n    }\n\n    \/\/ GET api\/products\/1\n    [HttpGet(\"{id}\")]\n    public ActionResult&lt;string&gt; Get(int id)\n    {\n        if (id &lt; 0 || id &gt;= _products.Count)\n        {\n            return NotFound(); \/\/ Returns 404 Not Found if product doesn't exist\n        }\n        return Ok(_products[id]);\n    }\n\n    \/\/ POST api\/products\n    [HttpPost]\n    public ActionResult Post([FromBody] string value)\n    {\n        if (string.IsNullOrWhiteSpace(value))\n        {\n            return BadRequest(\"Product name cannot be empty.\"); \/\/ Returns 400 Bad Request\n        }\n        _products.Add(value);\n        \/\/ Returns 201 Created with a link to the new resource\n        return CreatedAtAction(nameof(Get), new { id = _products.Count - 1 }, value);\n    }\n\n    \/\/ PUT api\/products\/1\n    [HttpPut(\"{id}\")]\n    public ActionResult Put(int id, [FromBody] string value)\n    {\n        if (id &lt; 0 || id &gt;= _products.Count)\n        {\n            return NotFound();\n        }\n        if (string.IsNullOrWhiteSpace(value))\n        {\n            return BadRequest(\"Product name cannot be empty.\");\n        }\n        _products[id] = value;\n        return NoContent(); \/\/ Returns 204 No Content for successful update\n    }\n\n    \/\/ DELETE api\/products\/1\n    [HttpDelete(\"{id}\")]\n    public ActionResult Delete(int id)\n    {\n        if (id &lt; 0 || id &gt;= _products.Count)\n        {\n            return NotFound();\n        }\n        _products.RemoveAt(id);\n        return NoContent(); \/\/ Returns 204 No Content for successful deletion\n    }\n}\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0627\u0632 Attribute\u0647\u0627\u06cc <span class='highlight'>[ApiController]<\/span> \u0648 <span class='highlight'>[Route]<\/span> \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0648 \u0645\u0633\u06cc\u0631 \u067e\u0627\u06cc\u0647 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0645\u062a\u062f\u0647\u0627\u06cc <span class='highlight'>[HttpGet]<\/span>\u060c <span class='highlight'>[HttpPost]<\/span>\u060c <span class='highlight'>[HttpPut]<\/span> \u0648 <span class='highlight'>[HttpDelete]<\/span> \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u062a\u062f\u0647\u0627\u06cc HTTP \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>ActionResult<\/span> \u06cc\u0627 <span class='highlight'>ActionResult&lt;T&gt;<\/span> \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc HTTP \u0645\u0646\u0627\u0633\u0628\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 201 Created \u062f\u0631 \u067e\u0627\u0633\u062e \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a POST \u06cc\u0627 204 No Content \u0628\u0631\u0627\u06cc PUT \u0648 DELETE\u060c \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0631 \u0627\u0647\u0645\u06cc\u062a <span class='highlight'>API Design<\/span> \u0648 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0627\u0635\u0648\u0644 RESTful \u062a\u0623\u06a9\u06cc\u062f \u062f\u0627\u0631\u062f\u060c \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 API\u0647\u0627\u06cc\u06cc \u0642\u0627\u0628\u0644 \u0641\u0647\u0645\u060c \u067e\u0627\u06cc\u062f\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u062a\u0648\u0633\u0639\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 (Dependency Injection) \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06a9\u062f\u0647\u0627\u06cc \u0645\u0627\u0698\u0648\u0644\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u062a\u0633\u062a\u060c \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>Middleware<\/span> \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0648 \u067e\u0627\u0633\u062e\u200c\u0647\u0627 \u062f\u0631 pipeline ASP.NET Core \u0628\u0647 \u0637\u0648\u0631 \u0645\u0641\u0635\u0644 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<\/div>\n<p>\u062f\u0631 \u0645\u062c\u0645\u0648\u0639\u060c \u062f\u0648\u0631\u0647 &#8220;\u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API Fundamentals&#8221; \u0627\u0632 Pluralsight \u06cc\u06a9 \u0633\u0631\u0645\u0627\u06cc\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u062a\u0633\u0644\u0637 \u0628\u0631 \u0633\u0627\u062e\u062a API\u0647\u0627\u06cc \u0645\u062f\u0631\u0646 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <span class='highlight'>\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0642\u062f\u0631\u062a\u0645\u0646\u062f ASP.NET Core<\/span> \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0628\u0627 \u067e\u0648\u0634\u0634 \u062c\u0627\u0645\u0639 \u062a\u0645\u0627\u0645\u06cc \u062c\u0646\u0628\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632\u060c \u0627\u0632 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0648\u0644\u06cc\u0647 \u062a\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u062a\u0631\u060c \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u062f\u0646\u06cc\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u06a9\u200c\u0627\u0646\u062f \u0628\u0627 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0647 \u0646\u0641\u0633 \u0648 \u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0645\u062c\u0647\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647\u060c \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f \u062a\u0627 API\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0628\u0647 \u06a9\u0627\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0646\u0642\u0634 \u0645\u0647\u0645\u06cc \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0627\u06cc\u0641\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; ASP.NET Core Web API Fundamentals \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET [&hellip;]<\/p>\n","protected":false},"featured_media":67493,"comment_status":"open","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}}},"product_cat":[1225],"product_tag":[12417,48633,4429,6591,8021,1337,1650,1798,3275,124,12478,1250,1238,1905,1237,12932,17748,1451,52657,41945],"class_list":{"0":"post-108154","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-1225","7":"product_tag-net-core","8":"product_tag-api-fundamentals","9":"product_tag-asp-net-core","10":"product_tag-c","11":"product_tag-download-course","12":"product_tag-microsoft","13":"product_tag-pluralsight","14":"product_tag-programming-tutorial","15":"product_tag-rest-api","16":"product_tag-software-development","17":"product_tag-web-api","18":"product_tag-web-development","19":"product_tag-1238","20":"product_tag-1905","21":"product_tag-1237","22":"product_tag-12932","23":"product_tag-17748","24":"product_tag-1451","25":"product_tag--asp-net-core","26":"product_tag-41945","27":"pmpro-has-access","28":"desktop-align-left","29":"tablet-align-left","30":"mobile-align-left","32":"first","33":"instock","34":"shipping-taxable","35":"purchasable","36":"product-type-variable"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0645\u0628\u0627\u0646\u06cc-asp-net-core-web-api\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\" \/>\n<meta property=\"og:description\" content=\"\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; ASP.NET Core Web API Fundamentals \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0645\u0628\u0627\u0646\u06cc-asp-net-core-web-api\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-06T04:09:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/express24.ir\/d\/wp-content\/uploads\/2025\/05\/Express24_ir.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/\",\"url\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/\",\"name\":\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\",\"isPartOf\":{\"@id\":\"https:\/\/express24.ir\/d\/#website\"},\"datePublished\":\"2025-06-06T04:08:57+00:00\",\"dateModified\":\"2025-06-06T04:09:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\/\/express24.ir\/d\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647\",\"item\":\"https:\/\/express24.ir\/d\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/express24.ir\/d\/#website\",\"url\":\"https:\/\/express24.ir\/d\/\",\"name\":\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/express24.ir\/d\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fa-IR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0645\u0628\u0627\u0646\u06cc-asp-net-core-web-api\/","og_locale":"fa_IR","og_type":"article","og_title":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","og_description":"\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f Pluralsight &#8211; ASP.NET Core Web API Fundamentals \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET [&hellip;]","og_url":"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0645\u0628\u0627\u0646\u06cc-asp-net-core-web-api\/","og_site_name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","article_modified_time":"2025-06-06T04:09:00+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/express24.ir\/d\/wp-content\/uploads\/2025\/05\/Express24_ir.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"3 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/","url":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/","name":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","isPartOf":{"@id":"https:\/\/express24.ir\/d\/#website"},"datePublished":"2025-06-06T04:08:57+00:00","dateModified":"2025-06-06T04:09:00+00:00","breadcrumb":{"@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d9%85%d8%a8%d8%a7%d9%86%db%8c-asp-net-core-web-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/express24.ir\/d\/"},{"@type":"ListItem","position":2,"name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647","item":"https:\/\/express24.ir\/d\/"},{"@type":"ListItem","position":3,"name":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0645\u0628\u0627\u0646\u06cc ASP.NET Core Web API"}]},{"@type":"WebSite","@id":"https:\/\/express24.ir\/d\/#website","url":"https:\/\/express24.ir\/d\/","name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/express24.ir\/d\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fa-IR"}]}},"_links":{"self":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product\/108154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/comments?post=108154"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/media\/67493"}],"wp:attachment":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/media?parent=108154"}],"wp:term":[{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product_cat?post=108154"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product_tag?post=108154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}