Учебники

14) Интервью Asp.Net Web API: вопросы и ответы

Скачать PDF

1) Что такое веб-API?

WebAPI — это фреймворк, который помогает вам создавать / разрабатывать HTTP-сервисы.

2) Почему требуется веб-API? Можно ли использовать сервисы RESTful с использованием WCF?

Да, мы все еще можем разрабатывать RESTful-сервисы с WCF. Однако есть две основные причины, побуждающие пользователей использовать веб-API вместо служб RESTful.

  • Web API расширяет подход TDD (Test Data Driven) при разработке сервисов RESTful.
  • Если мы хотим разрабатывать сервисы RESTful в WCF, вам, безусловно, понадобится много настроек конфигурации, шаблонов URI, контрактов и конечных точек для разработки сервисов RESTful с использованием веб-API.

3) Зачем выбирать веб-API?

  • Он используется для создания простых HTTP-сервисов, не основанных на SOAP
  • Это также простой метод для создания с помощью веб-API. С WCF REST Services
  • Он основан на HTTP и прост в определении, представлении и использовании в режиме REST.
  • Это легкая архитектура и идеально подходит для устройств с ограниченной пропускной способностью, таких как смартфоны.

4) Правильно ли, что ASP.NET Web API заменил WCF?

Совсем не правда, что ASP.NET Web API заменил WCF. Фактически это еще один способ создания сервисов, не основанных на SOAP, т. Е. Простой XML или строки JSON.

5) Каковы преимущества веб-API?

Преимущества веб-API:

  • OData
  • фильтры
  • Согласование контента
  • Self-хостинг
  • Маршрутизация
  • Привязки моделей

Вопросы по Asp.Net Web API

6) Какие основные типы возвращаемых данных поддерживаются в Web API?

Действие контроллера Web API может возвращать следующие значения:

  • Void — вернет пустой контент
  • HttpResponseMessage — преобразует ответ в сообщение HTTP.
  • IHttpActionResult — внутренне вызывает ExecuteAsync для создания HttpResponseMessage
  • Другие типы — вы можете записать сериализованное возвращаемое значение в тело ответа

7) Веб-API поддерживает какой протокол?

Веб-приложение поддерживает протокол HTTP.

8) Какая платформа .NET поддерживает веб-API?

NET 4.0 и выше версия поддерживает веб-API.

9) Веб-API использует какую из следующих библиотек с открытым исходным кодом для сериализации JSON?

Web API использует библиотеку Json.NET для сериализации JSON.

10) По умолчанию Web API отправляет HTTP-ответ с каким из следующих кодов состояния для всех необработанных исключений?

внутренняя ошибка сервера 500

11) Что является самым большим недостатком «Другие типы возврата» в веб-API?

Самым большим недостатком этого подхода является то, что вы не можете напрямую вернуть код ошибки, например 404 error.

12) Как вы строите HtmlResponseMessage?

Ниже приведен способ сделать это,

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) Что такое маршрутизация через веб-интерфейс?

Маршрутизация — это сопоставление с образцом, как в MVC.

Все маршруты зарегистрированы в таблицах маршрутов.

Например:

Routes.MapHttpRoute(

Name: "ExampleWebAPIRoute",

routeTemplate: “api/{controller}/{id}

defaults: new { id = RouteParameter.Optional}

14) Что такое SOAP?

SOAP — это формат сообщений XML, используемый во взаимодействиях веб-служб. Это позволяет отправлять сообщения через HTTP или JMS, но могут использоваться и другие транспортные протоколы. Это также протокол обмена сообщениями на основе XML для обмена информацией между компьютерами.

15) В чем преимущество использования REST в веб-API?

REST is used to make fewer data transfers between client and server which make it an ideal for using it in mobile apps. Web API also supports HTTP protocol. Therefore, it reintroduces the traditional way of the HTTP verbs for communication.

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:

  1. Create a Web API Controller,
  2. Add a routing table to Application_Start method of Global.sax
  3. Then you need to make a jQuery AJAX Call to Web API method and get data.

17) How to you can limit Access to Web API to Specific HTTP Verb?

Attribute programming plays a important role. It is easy to restrict access to an ASP.NET Web API method to be called using a particular HTTP method.

18) Can you use Web API with ASP.NET Web Form?

Yes, It is possible to use Web API with ASP.Net web form. As it is bundled with ASP.NET MVC framework. However, it can be used with ASP.NET Web Form.

19) How Can assign alias name for ASP.NET Web API Action?

We can give alias name for Web API action same as in case of ASP.NET MVC by using «ActionName» attribute as follows:

[HttpPost]

[ActionName("SaveStudentInfo")]

public void UpdateStudent(Student aStudent)
{
StudentRepository.AddStudent(aStudent);
}

20) What is the meaning of TestApi?

TestApi is a utility library of APIs. Using this library tester developer can create testing tools and automated tests for a .NET application using data-structure and algorithms.

21) Explain exception filters?

It will be executed when exceptions are unhandled and thrown from a controller method. The reason for the exception can be anything. Exception filters will implement «IExceptionFilter» interface.

22) How can we register exception filter from the action?

We can register exception filter from action using following code:

[NotImplExceptionFilter]

public TestCustomer GetMyTestCustomer(int custid)

{

//write the code

}

23) How you can return View from ASP.NET Web API method?

No, we can’t return a view from ASP.NET Web API Method. Web API creates HTTP services that render raw data. However, it’s also possible in ASP.NET MVC application.

24) How to register exception filter globally?

It is possible to register exception filter globally using following code-

GlobalConfiguration.Configuration.Filters.Add(new

MyTestCustomerStore.NotImplExceptionFilterAttribute ());

25) Объясните, что такое ОТДЫХ и ОТДЫХ?

REST представляет REpresentational State Transfer; это совершенно новый аспект написания веб-приложения.

RESTFUL: термин, написанный с применением архитектурных концепций REST, называется RESTful-сервисами. Основное внимание уделяется системным ресурсам и тому, как состояние ресурса должно передаваться по протоколу HTTP.

26) Дайте мне один пример Web API Routing?

Config.Routes.MapHttpRoute(

name: "MyRoute,"//route name

routeTemplate: "api/{controller}/{action}/{id}",//as you can see "API" is at the beginning.

defaults: new { id = RouteParameter.Optional }

);

27) Как вы можете обрабатывать ошибки в веб-API?

В Web API доступно несколько классов для обработки ошибок. Это HttpError, Фильтры исключений, HttpResponseException и Регистрация фильтров исключений.

28) Какие новые функции входят в ASP.NET Web API 2.0?

Последние возможности ASP.NET Web API framework v2.0:

  • Маршрутизация атрибутов
  • Обмен ресурсами между источниками
  • Внешняя аутентификация
  • Открытый веб-интерфейс NET
  • HttpActionResult
  • OData веб-API

29) Как можно ограничить методы доступа конкретными HTTP-глаголами в Web API?

С помощью атрибутов (например, HTTP-глаголов) можно реализовать ограничения доступа в веб-API.

Можно определить глаголы HTTP как атрибут для ограничения доступа. Пример:

[HttpPost]

public void Method1(Class obj)

{

//logic

30) Как вы можете передать несколько сложных типов в веб-API?

Два способа передачи сложных типов в веб-API —

Использование массивов ArrayList и Newtonsoft

31) Написать код для передачи ArrayList в веб-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) Назовите инструменты или API для разработки или тестирования веб-API?

Инструменты тестирования для веб-сервисов для REST API включают в себя:

  1. Джерси API
  2. CFX
  3. Ось
  4. Restlet

33) Что такое ОТДЫХ?

ОТДЫХ — архитектурный стиль. Он определил руководящие принципы для создания сервисов, которые являются масштабируемыми. REST используется с протоколом HTTP, используя его глаголы GET, PUT, POST и DELETE.

34) Как выполнить модульное тестирование веб-API?

Мы можем выполнить модульное тестирование, используя инструменты Web API, такие как Fiddler.

Вот некоторые настройки, которые необходимо выполнить, если вы используете

Fiddler –Compose Tab -> Введите заголовки запроса -> Введите тело запроса и выполните

35) Как мы можем ограничить доступ к методам с конкретными HTTP-глаголами в Web API?

Программирование атрибутов широко используется для этой функциональности. Веб-API также позволяет ограничивать доступ к вызывающим методам с помощью определенных HTTP-глаголов. Также можно определить HTTP-глаголы как атрибуты по методу.

36) Что такое использование DelegatingHandler?

DelegatingHandler используется в Web API для представления обработчиков сообщений перед маршрутизацией.

37) Как мы можем зарегистрировать фильтр исключений из действия?

Мы можем зарегистрировать фильтр исключений из действия, используя следующий код

[NotImplExceptionFilter]

public TestCust GetMyTestCust (int custno)

{

//write the code

}

38) Подскажите фрагмент кода, чтобы показать, как мы можем вернуть 404 ошибки из HttpError?

Код для возврата ошибки 404 из HttpError

string message = string.Format («TestCustomer id = {0} не найден», customerid);

return Request.CreateErrorResponse (HttpStatusCode.NotFound, message);

39) Объясните фрагмент кода для регистрации фильтров исключений из контроллера?

[NotImplExceptionFilter]

public class TestCustController : Controller

{

//Your code goes here

}

40) Какой протокол поддерживает веб-API?

Веб-приложение поддерживает протокол HTTP

41) Какой из следующих .NET Framework поддерживает Web API?

Web API поддерживается версией NET 4.0

42) Какая библиотека использует веб-API для сериализации JSON?

Web API использует библиотеку Json.NET для сериализации JSON.

43) По умолчанию Web API отправляет HTTP-ответ с каким из следующих кодов состояния для всех необработанных исключений?

внутренняя ошибка сервера 500

44) Объясните метод для обработки ошибок, используя HttpError в веб-API?

В WEB API HttpError используется для выдачи информации об ошибке в теле ответа. Метод «CreateErrorResponse» также может использоваться вместе с этим, который является методом расширения, определенным в «HttpRequestMessageExtension».

45) Как мы можем зарегистрировать фильтр исключений глобально?

Мы можем зарегистрировать фильтр исключений глобально, используя следующий код:

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

46) Как обрабатывать ошибки в веб-API?

В Web API доступно несколько классов для обработки ошибок. Это HttpError, HttpResponseException, фильтры исключений, регистрация фильтров исключений.

47) В чем преимущество WebAPI перед WCF?

Службы WCF используют протокол SOAP, а HTTP никогда не использует протокол SOAP. Вот почему сервисы WebAPI легки, поскольку SOAP не используется. Это также уменьшает данные, которые передаются для возобновления обслуживания. Более того, ему никогда не нужно слишком много настроек. Следовательно, клиент может взаимодействовать со службой с помощью HTTP-глаголов.

48) Различия в состоянии между MVC и WebAPI

MVC Framework используется для разработки приложений, которые имеют пользовательский интерфейс. Для этого представления могут быть использованы для создания пользовательского интерфейса.

WebAPI используется для разработки HTTP-сервисов. Другие приложения также могут называться методами WebAPI для получения этих данных.

49) Кто может использовать WebAPI?

WebAPI может использоваться любым клиентом, который поддерживает HTTP-глаголы, такими как GET, PUT, DELETE, POST. Поскольку сервисы WebAPI не нуждаются в какой-либо конфигурации, их очень легко использовать любому клиенту. Вред, даже портативные устройства, такие как мобильные устройства, могут легко потреблять WebAPI, что, безусловно, является самым большим преимуществом этой технологии.

50) Как мы можем убедиться, что Web API возвращает только данные JSON?

Чтобы заставить Web API сериализовать возвращаемый объект в формат JSON и возвращать только данные JSON. Для этого вы должны добавить следующий код в класс WebApiConfig.cs в любом проекте MVC Web API:

//JsonFormatter

//MediaTypeHeaderValue

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

1

2

3

//JsonFormatter

//MediaTypeHeaderValue

Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))