50 câu hỏi và câu trả lời phỏng vấn API Web Asp.Net hàng đầu

Anonim

tải PDF

1) Web API là gì?

WebAPI là một khuôn khổ giúp bạn xây dựng / phát triển các dịch vụ HTTP.

2) Tại sao cần phải có API Web? Có thể sử dụng các dịch vụ RESTful bằng WCF không?

Có, chúng tôi vẫn có thể phát triển các dịch vụ RESTful với WCF. Tuy nhiên, có hai lý do chính thúc đẩy người dùng sử dụng API Web thay vì các dịch vụ RESTful.

  • API Web tăng phương pháp TDD (Kiểm tra theo hướng dữ liệu) trong việc phát triển các dịch vụ RESTful.
  • Nếu chúng tôi muốn phát triển các dịch vụ RESTful trong WCF, bạn chắc chắn cần nhiều cài đặt cấu hình, mẫu URI, hợp đồng và điểm cuối để phát triển các dịch vụ RESTful bằng API web.

3) Tại sao chọn Web API?

  • Nó được sử dụng để tạo các Dịch vụ HTTP đơn giản, không dựa trên SOAP
  • Nó cũng là một phương pháp dễ dàng để tạo với API Web. Với Dịch vụ WCF REST
  • Nó dựa trên HTTP và dễ dàng xác định, hiển thị và sử dụng theo cách REST-ful.
  • Đây là kiến ​​trúc nhẹ và lý tưởng cho các thiết bị có băng thông hạn chế như điện thoại thông minh.

4) Có đúng là ASP.NET Web API đã thay thế WCF không?

Hoàn toàn không đúng khi ASP.NET Web API đã thay thế WCF. Trên thực tế, đó là một cách khác để xây dựng các dịch vụ không dựa trên SOAP, tức là chuỗi XML hoặc JSON thuần túy.

5) Ưu điểm của Web API là gì?

Ưu điểm của Web API là:

  • OData
  • Bộ lọc
  • Đàm phán nội dung
  • Tự lưu trữ
  • định tuyến
  • Mô hình ràng buộc

6) Các kiểu trả về chính được hỗ trợ trong API Web là gì?

Một hành động trình điều khiển API Web có thể trả về các giá trị sau:

  • Void - Nó sẽ trả về nội dung trống
  • HttpResponseMessage - Nó sẽ chuyển đổi phản hồi thành một thông điệp HTTP.
  • IHttpActionResult - gọi nội bộ ExecuteAsync để tạo HttpResponseMessage
  • Các loại khác - Bạn có thể viết giá trị trả về tuần tự vào phần nội dung phản hồi

7) Web API hỗ trợ giao thức nào?

Ứng dụng web hỗ trợ giao thức HTTP.

8) Khuôn khổ .NET nào hỗ trợ Web API?

Phiên bản NET 4.0 trở lên hỗ trợ API web.

9) Web API sử dụng thư viện mã nguồn mở nào sau đây để tuần tự hóa JSON?

API Web sử dụng thư viện Json.NET để tuần tự hóa JSON.

10) Theo mặc định, Web API sẽ gửi phản hồi HTTP với mã trạng thái nào sau đây cho tất cả các ngoại lệ không cần thiết?

500 - Lỗi máy chủ nội bộ

11) Nhược điểm lớn nhất của "Các loại trả lại khác" trong API Web là gì?

Nhược điểm lớn nhất của phương pháp này là bạn không thể trả về trực tiếp mã lỗi như lỗi 404.

12) Bạn xây dựng HtmlResponseMessage như thế nào?

Sau đây là cách xây dựng để làm như vậy,

public class TestController : ApiController{public HttpResponseMessage Get(){HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value");response.Content = new StringContent("Testing", Encoding.Unicode);response.Headers.CacheControl = new CacheControlHeaderValue(){MaxAge = TimeSpan.FromMinutes(20)};return response;}}

13) Định tuyến API Web là gì?

Định tuyến là đối sánh mẫu giống như trong MVC.

Tất cả các tuyến đường được đăng ký trong Bảng tuyến đường.

Ví dụ:

Routes.MapHttpRoute(Name: "ExampleWebAPIRoute",routeTemplate: “api/{controller}/{id}defaults: new { id = RouteParameter.Optional}

14) SOAP là gì?

SOAP là một định dạng thông báo XML được sử dụng trong các tương tác với dịch vụ web. Nó cho phép gửi tin nhắn qua HTTP hoặc JMS, nhưng có thể sử dụng các giao thức truyền tải khác. Nó cũng là một giao thức nhắn tin dựa trên XML để trao đổi thông tin giữa các máy tính.

15) Lợi ích của việc sử dụng REST trong Web API là gì?

REST được sử dụng để thực hiện ít truyền dữ liệu hơn giữa máy khách và máy chủ, điều này làm cho nó trở thành một lý tưởng để sử dụng nó trong các ứng dụng dành cho thiết bị di động. Web API cũng hỗ trợ giao thức HTTP. Do đó, nó giới thiệu lại cách truyền thống của các động từ HTTP để giao tiếp.

16) Làm cách nào chúng ta có thể sử dụng Web API với ASP.NET Web Form?

API Web có thể được sử dụng với ASP.NET Web Form

Nó có thể được thực hiện trong ba bước đơn giản:

  1. Tạo Bộ điều khiển API Web,
  2. Thêm bảng định tuyến vào phương thức Application_Start của Global.sax
  3. Sau đó, bạn cần thực hiện phương thức Gọi tới API web jQuery AJAX và lấy dữ liệu.

17) Làm cách nào để bạn có thể giới hạn Quyền truy cập vào API Web thành Động từ HTTP cụ thể?

Lập trình thuộc tính đóng một vai trò quan trọng. Có thể dễ dàng hạn chế quyền truy cập vào một phương thức API Web ASP.NET được gọi bằng một phương thức HTTP cụ thể.

18) Bạn có thể sử dụng Web API với ASP.NET Web Form không?

Có, Có thể sử dụng Web API với biểu mẫu web ASP.Net. Vì nó được đóng gói với khung ASP.NET MVC. Tuy nhiên, nó có thể được sử dụng với ASP.NET Web Form.

19) Làm thế nào có thể gán tên bí danh cho ASP.NET Web API Action?

Chúng tôi có thể đặt tên bí danh cho hành động API Web giống như trong trường hợp ASP.NET MVC bằng cách sử dụng thuộc tính "ActionName" như sau:

[HttpPost][ActionName("SaveStudentInfo")]public void UpdateStudent(Student aStudent){StudentRepository.AddStudent(aStudent);}

20) Ý nghĩa của TestApi là gì?

TestApi là một thư viện tiện ích của các API. Sử dụng thư viện này, nhà phát triển trình kiểm tra có thể tạo các công cụ kiểm tra và kiểm tra tự động cho ứng dụng .NET bằng cách sử dụng cấu trúc dữ liệu và thuật toán.

21) Giải thích các bộ lọc ngoại lệ?

Nó sẽ được thực thi khi các ngoại lệ không được xử lý và ném ra khỏi bộ điều khiển meth o d. Lý do cho ngoại lệ có thể là bất cứ điều gì. Bộ lọc ngoại lệ sẽ triển khai giao diện "IExceptionFilter".

22) Làm thế nào chúng ta có thể đăng ký bộ lọc ngoại lệ từ hành động?

Chúng tôi có thể đăng ký bộ lọc ngoại lệ từ hành động bằng cách sử dụng mã sau:

[NotImplExceptionFilter]public TestCustomer GetMyTestCustomer(int custid){//write the code}

23) Làm cách nào bạn có thể trả về View từ phương thức ASP.NET Web API?

Không, chúng tôi không thể trả lại chế độ xem từ Phương pháp API Web ASP.NET. API Web tạo ra các dịch vụ HTTP hiển thị dữ liệu thô. Tuy nhiên, nó cũng có thể trong ứng dụng ASP.NET MVC.

24) Làm thế nào để đăng ký bộ lọc ngoại lệ trên toàn cầu?

Có thể đăng ký bộ lọc ngoại lệ trên toàn cầu bằng cách sử dụng mã sau-

GlobalConfiguration.Configuration.Filters.Add (mới

MyTestCustomerStore.NotImplExceptionFilterAttribute ());

25) Giải thích REST và RESTFUL là gì?

REST đại diện cho Chuyển giao trạng thái đại diện; nó hoàn toàn là một khía cạnh mới của việc viết một ứng dụng web.

RESTFUL: Thuật ngữ được viết bằng cách áp dụng các khái niệm kiến ​​trúc REST được gọi là các dịch vụ RESTful. Nó tập trung vào tài nguyên hệ thống và trạng thái của tài nguyên sẽ được vận chuyển như thế nào qua giao thức HTTP.

26) Cho tôi một ví dụ về Định tuyến API Web?

Config.Routes.MapHttpRoute(name: "MyRoute,"//route namerouteTemplate: "api/{controller}/{action}/{id}",//as you can see "API" is at the beginning.defaults: new { id = RouteParameter.Optional });

27) Bạn có thể xử lý các lỗi trong Web API như thế nào?

Một số lớp có sẵn trong API Web để xử lý lỗi. Chúng là HttpError, Bộ lọc ngoại lệ, HttpResponseException và Đăng ký Bộ lọc ngoại lệ.

28) Tính năng mới nào đi kèm với ASP.NET Web API 2.0?

Các tính năng mới nhất của khung ASP.NET Web API v2.0 như sau:

  • Định tuyến thuộc tính
  • Chia sẻ tài nguyên đa nguồn gốc
  • Xác thực bên ngoài
  • Mở giao diện web NET
  • HttpActionResult
  • Dữ liệu OData Web API

29) Làm cách nào bạn có thể hạn chế các phương thức truy cập đối với các động từ HTTP cụ thể trong API Web?

Với sự trợ giúp của Thuộc tính (như động từ HTTP), Có thể triển khai các hạn chế truy cập trong API Web.

Có thể xác định động từ HTTP như một thuộc tính để hạn chế quyền truy cập. Thí dụ:

[HttpPost]public void Method1(Class obj){//logic

30) Làm cách nào bạn có thể chuyển nhiều kiểu phức tạp trong API Web?

Hai phương pháp để chuyển các kiểu phức tạp trong API Web -

Sử dụng mảng ArrayList và Newtonsoft

31) Viết mã để chuyển ArrayList trong Web API?

ArrayList paramList = new ArrayList();Category c = new Category { CategoryId = 1, CategoryName =“MobilePhones”};Product p = new Product { Productcode = 1, Name = “MotoG”, Price = 15500, CategoryID = 1 };paramList.Add(c);paramList.Add(p);

32) Kể tên các công cụ hoặc API để phát triển hoặc thử nghiệm api web?

Các công cụ kiểm tra dịch vụ web cho REST API bao gồm:

  1. API Jersey
  2. CFX
  3. Trục
  4. Restlet

33) REST là gì?

REST là phong cách kiến ​​trúc. Nó đã xác định các nguyên tắc để tạo các dịch vụ có thể mở rộng. REST được sử dụng với giao thức HTTP bằng các động từ GET, PUT, POST và DELETE.

34) Làm thế nào để kiểm tra đơn vị API Web?

Chúng tôi có thể thực hiện kiểm tra Đơn vị bằng các công cụ API Web như Fiddler.

Đây là một số cài đặt cần thực hiện nếu bạn đang sử dụng

Fiddler -Compose Tab -> Nhập Tiêu đề Yêu cầu -> Nhập Nội dung Yêu cầu và thực hiện

35) Làm cách nào chúng ta có thể hạn chế quyền truy cập vào các phương thức với các động từ HTTP cụ thể trong API Web?

Lập trình thuộc tính được sử dụng rộng rãi cho chức năng này. Web API cũng cho phép hạn chế quyền truy cập của các phương thức gọi với sự trợ giúp của các động từ HTTP cụ thể. Cũng có thể xác định động từ HTTP là thuộc tính thay vì phương thức.

36) Cách sử dụng của DelegateHandler là gì?

DelegateHandler được sử dụng trong API Web để đại diện cho Trình xử lý thông báo trước khi định tuyến.

37) Làm thế nào chúng ta có thể đăng ký bộ lọc ngoại lệ từ hành động?

Chúng tôi có thể đăng ký bộ lọc ngoại lệ từ hành động bằng cách sử dụng mã sau

[NotImplExceptionFilter]public TestCust GetMyTestCust (int custno){//write the code}

38) Cho tôi biết đoạn mã để hiển thị cách chúng tôi có thể trả lại lỗi 404 từ HttpError?

Mã trả về lỗi 404 từ HttpError

string message = string.Format (“Không tìm thấy TestCustomer id = {0}”, customerid);

trả về Request.CreateErrorResponse (HttpStatusCode.NotFound, thông báo);

39) Giải thích đoạn mã để đăng ký bộ lọc ngoại lệ từ bộ điều khiển?

[NotImplExceptionFilter]public class TestCustController : Controller{//Your code goes here}

40) Web API hỗ trợ giao thức nào?

Ứng dụng web hỗ trợ giao thức HTTP

41) Khuôn khổ .NET nào sau đây hỗ trợ Web API?

Web API được hỗ trợ bởi phiên bản NET 4.0

42) Web API sử dụng thư viện nào để tuần tự hóa JSON?

API Web sử dụng thư viện Json.NET để tuần tự hóa JSON.

43) Theo mặc định, Web API sẽ gửi phản hồi HTTP với mã trạng thái nào sau đây cho tất cả các ngoại lệ không cần thiết?

500 - Lỗi máy chủ nội bộ

44) Giải thích phương pháp xử lý lỗi sử dụng HttpError trong Web API?

Trong WEB API, HttpError được sử dụng để đưa thông tin lỗi vào nội dung phản hồi. Phương thức “CreateErrorResponse” cũng có thể được sử dụng cùng với phương thức này, là một phương thức mở rộng được định nghĩa trong “HttpRequestMessageExtension.”

45) Làm thế nào chúng ta có thể đăng ký bộ lọc ngoại lệ trên toàn cầu?

Chúng tôi có thể đăng ký bộ lọc ngoại lệ trên toàn cầu bằng cách sử dụng mã sau:

GlobalConfiguration.Configuration.Filters.Add (new MyTestCustomerStore.NotImplExceptionFilterAttribute());

46) Cách xử lý lỗi trong Web API?

Một số lớp có sẵn trong API Web để xử lý lỗi. Đó là HttpError, HttpResponseException, Bộ lọc ngoại lệ, Đăng ký Bộ lọc ngoại lệ.

47) Lợi ích của WebAPI so với WCF là gì?

Các dịch vụ WCF sử dụng giao thức SOAP trong khi HTTP không bao giờ sử dụng giao thức SOAP. Đó là lý do tại sao các dịch vụ WebAPI có dung lượng nhẹ vì SOAP không được sử dụng. Nó cũng làm giảm dữ liệu được chuyển sang dịch vụ tiếp tục. Hơn nữa, nó không bao giờ cần cấu hình quá cao. Do đó, khách hàng có thể tương tác với dịch vụ bằng cách sử dụng các động từ HTTP.

48) Trạng thái khác biệt giữa MVC và WebAPI

Khung MVC được sử dụng để phát triển các ứng dụng có Giao diện người dùng. Vì vậy, các khung nhìn có thể được sử dụng để xây dựng giao diện người dùng.

WebAPI được sử dụng để phát triển các dịch vụ HTTP. Các ứng dụng khác cũng có thể được gọi là các phương thức WebAPI để tìm nạp dữ liệu đó.

49) Ai có thể sử dụng WebAPI?

WebAPI có thể được sử dụng bởi bất kỳ ứng dụng khách nào hỗ trợ các động từ HTTP như GET, PUT, DELETE, POST. Vì các dịch vụ WebAPI không cần bất kỳ cấu hình nào, chúng rất dễ sử dụng bởi bất kỳ máy khách nào. Vi phạm, ngay cả các thiết bị di động như Thiết bị di động cũng có thể dễ dàng sử dụng WebAPI, đây chắc chắn là lợi thế lớn nhất của công nghệ này.

50) Làm cách nào chúng tôi có thể đảm bảo rằng API Web chỉ trả về dữ liệu JSON?

Để làm cho Web API tuần tự hóa đối tượng trả về thành định dạng JSON và chỉ trả về dữ liệu JSON. Để làm được điều đó, bạn nên thêm mã sau vào lớp WebApiConfig.cs trong bất kỳ Dự án API Web MVC nào:

//JsonFormatter//MediaTypeHeaderValueConfig.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));123//JsonFormatter//MediaTypeHeaderValueConfig.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))