Tổng hợp 500+ câu hỏi phỏng vấn ASP.NET Web API
Tổng hợp những câu hỏi phỏng vấn ASP.NET Web API mới nhất, chính xác nhất theo từng cấp bậc!
Câu hỏi phỏng vấn ASP.NET Web API
Hãy xem các câu hỏi chúng tôi đã tổng hợp và cùng ôn luyện lại nhé!
ASP.NET Web API là một framework của Microsoft được sử dụng để xây dựng và phát triển các dịch vụ web và ứng dụng web dựa trên các chuẩn và giao thức web như HTTP và REST. Nó cung cấp các công cụ và tính năng để xử lý các yêu cầu HTTP và trả về các phản hồi dưới dạng dữ liệu JSON hoặc XML. ASP.NET Web API được tích hợp sẵn trong ASP.NET MVC và có thể được sử dụng cho các ứng dụng web độc lập hoặc như một phần của một ứng dụng web tổng thể.
Để khởi tạo một dự án ASP.NET Web API mới, bạn có thể làm theo các bước sau:
- Mở Visual Studio và chọn "Create a new project".
- Trong cửa sổ "Create a new project", tìm kiếm từ khóa "ASP.NET Web Application".
- Chọn mẫu dự án "ASP.NET Web Application" và bấm Next.
- Đặt tên cho dự án và chọn đường dẫn lưu trữ.
- Bấm Next và chọn mẫu dự án "Web API".
- Bấm Create để tạo dự án mới.
- Visual Studio sẽ tự động tạo ra cấu trúc cơ bản cho một dự án Web API mới, bao gồm các tệp tin và thư mục cần thiết.
- Bạn có thể tùy chỉnh dự án và thêm các API endpoints bằng cách thêm các Controller mới vào thư mục Controllers.
Sau khi hoàn thành bước trên, bạn đã khởi tạo thành công một dự án ASP.NET Web API mới và có thể bắt đầu phát triển API của mình.
ASP.NET Web API hỗ trợ 6 loại HTTP methods. Đó là:
- GET: Được sử dụng để truy vấn và nhận về thông tin từ một resource.
- POST: Được sử dụng để tạo mới một resource.
- PUT: Được sử dụng để cập nhật hoặc thay đổi một resource.
- DELETE: Được sử dụng để xóa một resource.
- OPTIONS: Được sử dụng để lấy thông tin về các options mà một resource hỗ trợ.
- HEAD: Tương tự như HTTP GET, nhưng chỉ trả về metadata của resource mà không trả về nội dung thực tế.
Điều này cho phép ASP.NET Web API dễ dàng xử lý các hoạt động CRUD (Create, Retrieve, Update, Delete) trên các resource của ứng dụng web.
Để xác định một action chỉ chấp nhận request từ một phương thức HTTP cụ thể trong ASP.NET Web API, bạn có thể sử dụng attribute [HttpMethod]
và chỉ định phương thức HTTP mong muốn như sau:
[HttpGet] // chỉ chấp nhận phương thức HTTP GET
public IHttpActionResult GetData()
{
// xử lý yêu cầu
return Ok();
}
[HttpPost] // chỉ chấp nhận phương thức HTTP POST
public IHttpActionResult CreateData()
{
// xử lý yêu cầu
return Ok();
}
[HttpPut] // chỉ chấp nhận phương thức HTTP PUT
public IHttpActionResult UpdateData()
{
// xử lý yêu cầu
return Ok();
}
[HttpDelete] // chỉ chấp nhận phương thức HTTP DELETE
public IHttpActionResult DeleteData()
{
// xử lý yêu cầu
return Ok();
}
Trong ví dụ trên, mỗi action đã được gán một attribute [HttpGet]
, [HttpPost]
, [HttpPut]
, [HttpDelete]
tương ứng với các phương thức HTTP GET, POST, PUT và DELETE tương ứng.
Để gửi dữ liệu JSON từ client lên server trong ASP.NET Web API, bạn có thể sử dụng HTTP POST request và thiết lập header 'Content-Type' là 'application/json'. Dưới đây là một ví dụ về cách gửi dữ liệu JSON từ client lên server:
- Trên client-side, sử dụng JavaScript hoặc jQuery để tạo request POST và thiết lập các thông tin cần thiết:
var data = { name: "John", age: 30 };
var url = "/api/mycontroller/myaction";
$.ajax({
url: url,
type: "POST",
contentType: "application/json",
data: JSON.stringify(data),
success: function(response) {
// Xử lý thành công
},
error: function(error) {
// Xử lý lỗi
}
});
- Trên server-side, tạo một action trong controller để nhận request POST và chuyển đổi dữ liệu JSON thành đối tượng:
[HttpPost]
public IHttpActionResult MyAction([FromBody] JObject data)
{
// Xử lý dữ liệu
string name = data["name"].ToString();
int age = data["age"].ToObject<int>();
// Trả về kết quả
return Ok();
}
Trong ví dụ trên, FromBody
attribute được sử dụng để chỉ định rằng dữ liệu JSON được gửi từ client sẽ được chuyển đổi thành đối tượng JObject
. Bạn có thể sử dụng các đối tượng khác như dynamic
hoặc tạo một lớp mô hình dữ liệu tùy chỉnh và sử dụng nó thay vì JObject
.
Trong ASP.NET Web API, có thể trả về dữ liệu JSON từ server về client bằng cách sử dụng lớp HttpResponseMessage và phương thức Json của lớp JsonConvert trong thư viện Newtonsoft.Json.
Dưới đây là ví dụ về cách trả về dữ liệu JSON từ server về client trong ASP.NET Web API:
-
Import namespace:
using Newtonsoft.Json; using System.Net; using System.Net.Http; using System.Web.Http;
-
Tạo một API controller và triển khai phương thức trả về dữ liệu JSON:
public class DataController : ApiController { [HttpGet] public HttpResponseMessage GetData() { // Đối tượng dữ liệu cần trả về var data = new { Name = "John", Age = 30 }; // Chuyển đổi đối tượng dữ liệu thành chuỗi JSON string jsonData = JsonConvert.SerializeObject(data); // Tạo một đối tượng HttpResponseMessage với mã trạng thái OK HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); // Cài đặt nội dung của response là chuỗi JSON đã chuyển đổi response.Content = new StringContent(jsonData, Encoding.UTF8, "application/json"); // Trả về response return response; } }
Ở đây, chúng ta sử dụng phương thức JsonConvert.SerializeObject để chuyển đối tượng dữ liệu thành chuỗi JSON.
-
Cấu hình định tuyến cho API trong file App_Start/WebApiConfig.cs:
public static void Register(HttpConfiguration config) { // Định tuyến cho API controller config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
-
Kiểm tra kết quả bằng cách chạy ứng dụng và gọi API tại đường dẫn: /api/Data/GetData.
Thực hiện xong các bước trên, server sẽ trả về dữ liệu JSON cho client.
Trong ASP.NET Web API, có thể xử lý lỗi bằng cách sử dụng bộ xử lý ngoại lệ và trình xử lý lỗi theo cách tương tự như trong ASP.NET. Dưới đây là một số phương pháp phổ biến để xử lý lỗi trong ASP.NET Web API:
-
Sử dụng trình xử lý ngoại lệ toàn diện (global exception handler): Bằng cách sử dụng bộ xử lý ngoại lệ toàn diện, bạn có thể bắt và xử lý tất cả các ngoại lệ xảy ra trong ứng dụng Web API. Bạn có thể đăng ký một lớp dẫn xuất từ lớp
ExceptionFilterAttribute
và ghi đè phương thứcOnException
để xử lý ngoại lệ. -
Sử dụng trình xử lý ngoại lệ cụ thể cho từng phương thức API: Bạn có thể đánh dấu các phương thức API cụ thể bằng cách sử dụng
ExceptionHandlerAttribute
và ghi đè phương thứcOnException
để xử lý ngoại lệ chỉ định cho phương thức đó. -
Sử dụng trình xử lý lỗi HTTP: ASP.NET Web API cung cấp trình xử lý lỗi HTTP mặc định (
HttpError
) để xử lý và trả về thông tin lỗi cho khách hàng. Bạn có thể sử dụng các phương pháp nhưCreateErrorResponse
,Add
,Clear
,... để xây dựng thông điệp lỗi và trả về cho khách hàng. -
Sử dụng hệ thống theo dõi và ghi nhật ký (logging system): Bạn có thể sử dụng các thư viện ghi nhật ký như
log4net
,NLog
hoặc hệ thống ghi nhật ký tích hợp sẵn của ASP.NET để ghi lại và giám sát các sự kiện lỗi trong ứng dụng.
Ngoài ra, bạn cũng nên đảm bảo rằng các cài đặt và thông báo lỗi được xử lý một cách an toàn và bảo mật, tránh để lộ thông tin quan trọng như thông tin xác thực hoặc chi tiết kỹ thuật của ứng dụng.
Để thêm authentication và authorization trong ASP.NET Web API, bạn có thể sử dụng các phương pháp sau:
-
Authentication:
- Bạn có thể sử dụng ASP.NET Identity để xác thực người dùng. Điều này cho phép bạn quản lý người dùng và cung cấp chức năng đăng nhập và đăng ký trong ứng dụng của bạn.
- Bạn cũng có thể sử dụng các phương thức xác thực bên ngoài như OAuth hoặc OpenID Connect để xác thực người dùng thông qua các dịch vụ bên ngoài như Facebook, Google, Twitter, vv.
-
Authorization:
- Bạn có thể sử dụng Attribute-based Authorization để gắn các attribute như [Authorize] lên các controller hoặc action trong controller. Điều này sẽ yêu cầu người dùng được xác thực trước khi truy cập vào các API này.
- Bạn cũng có thể sử dụng Policy-based Authorization để định nghĩa các chính sách xác thực theo logic phức tạp và áp dụng chúng vào các API cụ thể.
- Sử dụng Role-based Authorization để kiểm tra vai trò của người dùng và cho phép truy cập vào các API dựa trên quyền của họ.
Bạn có thể cấu hình authentication và authorization trong file Startup.cs của ứng dụng của bạn.
Để tạo unit test cho một controller trong ASP.NET Web API, bạn có thể tuân theo các bước sau:
- Tạo một dự án unit test trong cùng solution với dự án chứa controller.
- Cài đặt các gói NuGet sau nếu chưa có:
- NUnit - Một framework cho unit testing
- Moq - Một thư viện mocking để thay thế các phụ thuộc
- Tạo một class unit test mới và viết các unit test cho controller. Dưới đây là một ví dụ cho việc tạo unit test cho một controller có tên là "ValuesController":
using NUnit.Framework;
using Moq;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Hosting;
using System.Web.Http.Routing;
using YourWebApiProject.Controllers;
using YourWebApiProject.Models;
namespace YourUnitTestProject
{
[TestFixture]
public class ValuesControllerTests
{
private Mock<IYourRepository> repositoryMock;
private ValuesController controller;
[SetUp]
public void Setup()
{
repositoryMock = new Mock<IYourRepository>();
controller = new ValuesController(repositoryMock.Object);
controller.Request = new HttpRequestMessage();
controller.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
controller.Request.Properties.Add(HttpPropertyKeys.HttpRouteDataKey, new HttpRouteData(new HttpRoute()));
}
[Test]
public void Get_ReturnsValuesFromRepository()
{
// Arrange
var expectedValues = new List<string> { "value1", "value2" };
repositoryMock.Setup(r => r.GetValues()).Returns(expectedValues);
// Act
var response = controller.Get();
var values = response.Content.ReadAsAsync<List<string>>().Result;
// Assert
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
Assert.AreEqual(expectedValues, values);
}
[Test]
public void Post_CallsRepositoryToAddValue()
{
// Arrange
var newValue = "value3";
repositoryMock.Setup(r => r.AddValue(newValue));
// Act
var response = controller.Post(newValue);
// Assert
repositoryMock.Verify(r => r.AddValue(newValue), Times.Once);
}
}
}
Trong ví dụ trên, chúng ta sử dụng thư viện Moq để mock repository và kiểm tra các phương thức được gọi đúng cách trong các phương thức điều khiển của controller. Chúng ta cũng sử dụng framework NUnit để tạo và thực thi unit test. Bắt đầu từ NUnit version 3, NUnit cung cấp một bộ thành phần tích hợp sẵn cho ASP.NET Web API để viết và chạy các unit test cho controller. Bạn có thể tham khảo thêm về cách sử dụng bộ thành phần này trên trang web chính thức của NUnit.
Câu hỏi phỏng vấn ASP.NET Web API | Phong-Van.Com
6 days ago 6 days ago Câu hỏi phỏng vấn ASP.NET Web API | Phong-Van.Com. ... 1 week ago WEB 3 days ago WEB Top 20 câu hỏi phỏng vấn ASP.NET Core trong năm 2020. 1 week ago WEB Feb 8, …
› Câu hỏi phỏng vấn Asp.net/…
Câu hỏi phỏng vấn ASP.NET Web API | Phong-Van.Com. 3 days ago 1 week …
50 câu hỏi và câu trả lời phỏng vấn API Web Asp.Net (2024)
3 days ago Sep 26, 2024 · 1) API Web là gì? WebAPI là một framework giúp bạn xây dựng/phát triển các dịch vụ HTTP. 2) Tại sao cần có API Web? Có thể sử dụng dịch vụ RESTful bằng WCF …
Bộ câu hỏi phỏng vấn ASP.NET Web API dành cho lập trình viên
1 week ago Thách thức mọi câu hỏi phỏng vấn ASP.NET Web APIdành cho lập trình viên. 6304 câu hỏi phỏng vấn Full-Stack, Coding & System Design Interview. Câu hỏi Global. Tải xuống Ebook …
Hơn 50 câu hỏi và câu trả lời phỏng vấn ASP.NET (2024)
5 days ago Sep 26, 2024 · Dưới đây là các câu hỏi và câu trả lời phỏng vấn ASP.NET dành cho những ứng viên mới ra trường cũng như có kinh nghiệm để có được công việc mơ ước của họ. Mục lục: …
Bộ câu hỏi phỏng vấn ASP.NET dành cho lập trình viên
1 week ago dành cho lập trình viên. 6304 câu hỏi phỏng vấn Full-Stack, Coding & System Design Interview. Câu hỏi Global. Tải xuống Ebook cẩm nang phỏng vấn. Full-stack, Web & Mobile. Coding & …
50 Asp.Net Web API Interview Questions and Answers (2024)
1 week ago Sep 26, 2024 · 16) How can we use Web API with ASP.NET Web Form? Web API can be used with ASP.NET Web Form. It can be performed in three simple steps: Create a Web API …
lap trinh asp.net: câu hỏi phỏng vấn thường gặp - VietnamWorks
1 day ago Tip: Được đánh giá là một trong các câu hỏi phỏng vấn thường gặp và quan trọng, cách trả lời phỏng vấn câu hỏi này là nên chân thật, nó giống như bạn đang chia sẻ những kinh nghiệm …
29 câu hỏi phỏng vấn ASP.NET Web API - PhongvanIT.com
3 days ago Các câu hỏi phỏng vấn ASP.NET Web API
Thẻ ghi nhớ: câu hỏi phỏng vấn asp.net | Quizlet
1 week ago ASP.NET Web API là gì và nó được sử dụng như thế nào? ASP.NET Web API là một framework để xây dựng các dịch vụ web RESTful. Nó được sử dụng để tạo ra các endpoint HTTP để truy …
Câu hỏi phỏng vấn Asp.net/Asp.net MVC | Phong-Van.Com
5 days ago Câu hỏi phỏng vấn ASP.NET Web API | Phong-Van.Com. 3 days ago 1 week ago 1 week ago 6 days ago 1 week ago Tổng hợp 500+ câu hỏi phỏng vấn .Net Core - Phong-Van.com. 3 days …
Top 20 câu hỏi phỏng vấn ASP.NET Core trong năm 2020
1 week ago Feb 8, 2020 · Top 20 câu hỏi phỏng vấn ASP.NET Core trong năm 2020. ... ASP.NET Core Web APIs toàn tập. Mẹo Microsoft Visual Studio. Mẹo Visual Studio Code ... Import file excel trong …
Những câu hỏi phỏng vấn IT Asp.net/Asp.net MVC - ITDEV
1 day ago Feb 25, 2023 · Mẫu kiến trúc Model – View – Controller được sử dụng nhằm chi ứng dụng thành ba thành phần chính: model, view và controller. Nền tảng ASP.NET MVC giúp cho chúng ta có …
ASPNET Web API - Câu hỏi phỏng vấn ASP.NET Web API
4 days ago ASP.NET Web API OData là một công nghệ cho phép tạo các điểm cuối OData (Open Data Protocol) trong ASP.NET Web API. OData là một giao thức truy cập dữ liệu cho web, được …
Những câu hỏi phỏng vấn ASP.NET MVC và hướng ... - Devwork
6 days ago ASP.NET MVC là gì? ASP.NET MVC viết tắt từ Model-View-Controller. Đây là một framework có nhiệm vụ hỗ trợ pattern MVC tới ASP.NET. MVC phân chia pattern của ứng dụng làm 3 phần …
77 câu hỏi phỏng vấn Asp.net/Asp.net MVC - PhongvanIT.com
1 week ago Các câu hỏi phỏng vấn Asp.net/Asp.net MVC
Top 20 Câu Hỏi Phỏng Vấn API Testing Phổ Biến Nhất - Glints
1 day ago Jul 17, 2023 · Top 20 Câu Hỏi Phỏng Vấn API Testing Phổ Biến Nhất. API Testing đang dần trở thành một vị trí không thể thiếu trong các team kỹ thuật và phát triển phần mềm. Nếu bạn cảm …
Tổng hợp kiến thức đi phỏng vấn ASP.NET Core 2020
1 week ago Tạo và gửi mẫu E-mail cho marketing trong ASP.NET Core. Xem chi tiết . Tạo trang quên mật khẩu trong ASP.NET Core 2149. 6/15/2021. Tạo trang quên mật khẩu trong ASP.NET Core. …
Câu hỏi và câu trả lời phỏng vấn API REST hàng đầu
1 week ago Oct 14, 2022 · Tóm lại. Để kết luận, bài viết trên chia sẻ các câu hỏi phỏng vấn API REST. Nó bao gồm tất cả các câu hỏi phỏng vấn API REST dành cho những người sắp ứng tuyển hoặc …
Top 40+ câu hỏi phỏng vấn Mobile Developer phổ biến
3 days ago Nov 12, 2024 · Kỹ năng tích hợp API: Sử dụng dịch vụ web và API hiệu quả. Xử lý bất đồng bộ: Quản lý các thao tác không đồng bộ và đa luồng. Khả năng tối ưu hóa ứng dụng: Đảm bảo …
Top 20+ câu hỏi phỏng vấn PHP phổ biến - ITviec Blog
3 days ago Nov 12, 2024 · Top 20+ câu hỏi phỏng vấn PHP phổ biến. ... Route cho website được tạo trong tệp web.php, còn route cho API nằm trong api.php. Các route của website thuộc nhóm …
Top 30+ câu hỏi phỏng vấn Magento phổ biến - ITviec Blog
6 days ago Nov 12, 2024 · Magento 2 Web API: Sử dụng Web API của Magento để tương tác với các dữ liệu sản phẩm, đơn hàng, khách hàng. Custom module: Phát triển một module Magento tùy chỉnh …
FAQs - Câu hỏi thường gặp về phỏng vấn?
Những câu hỏi thường gặp để phản ánh chính sách và quy trình cụ thể của bạn hoặc để phù hợp với mục đích cụ thể của phỏng vấn.