Web api c пример

Web api c пример

Введение в Web API

Одним из преимуществ стека технологий на платформе .NET является возможность создания сервисов. Так, в ASP.NET мы могли создавать ASMX-веб-службы. Кроме того, мы можем использовать более функциональную в этом плане технологию WCF для создания веб-служб.

Но с последним релизом MVC 4 и вообще всей платформы .NET 4.5 в нашем распоряжении оказался еще один инструмент для создания веб-служб — Web API. Концепция Web API (которую кстати можно использовать не только в MVC, но и в веб-формах) новый подход к реализации веб-приложений.

Создадим простое приложение ASP.NET MVC 4, указав в качестве шаблона проекта Web API :

Среда создаст обычный mvc-проект со стандартной структурой. По умолчанию нам будет создано два контроллера. Один из них стандартный контроллер HomeController. Второй контроллер — ValuesController, который и реализует функционал Web API:

Как видно, определение контроллера Web API отличается от обычного контроллера. Во-первых, он образован от класса ApiController , который не связан с базовым классом обычных контроллеров — Controller

Во-вторых, контроллеры Web API применяют стиль REST. Вообще поддержка архитектуры REST (Representation State Transfer или "передача состояния представления") является одним из основных узловых пунктов технологии Web API.

Для взаимодействия с сервером в REST-архитектуре используются методы HTTP:

У нас тут нет обычных методов действий, как в традиционных контроллерах, которые возвращают ActionResult. А определенные в контроллере ValuesContoller методы сопоставляются с одноименными методами HTTP.

Маршрутизация в Web API

Поскольку в Web API методы контроллера не являются прямыми ресурсами и сопоставляются с методами HTTP, то и весь механизм маршрутизации действует не как при определении обычных маршрутов. Все определения маршрутов для Web API находятся в файле WebApiConfig.cs (в папке App_Start):

В данном случае определен один маршрут, где в качестве второго параметра выступает контроллер, а третий необязательный параметр представляет некоторый идентификатор. Таким образом, в отличие от маршрутов обычных контроллеров у нас здесь нет действия, только контроллер и дополнительный необязательный параметр

В итоге обращение api/values будет соответствовать обращению к контроллеру ValuesCotroller, причем почти ко всем действиям сразу (кроме Get(int id) — так как в данном случае необходим еще идентификатор, например api/values/2)

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

Так, например, запрос GET api/values будет сопоставлен с методом IEnumerable Get() и вернет в ответ браузеру коллекцию элементов string .

Если же сервер получит запрос PUT с адресом api/values, то такой запрос будет сопоставлен с методом Put.

А запросу GET api/values/7 будет соответствовать метод string Get(int id) , так как этот метод принимает параметр.

Условности при наименовании методов

При создании методов контроллера Web API действует некоторые условности. Так, имена методов по умолчанию должны начинаться с имени предназначенного для них метода HTTP. В случае с контроллером по умолчанию все просто: все методы действий носят названия методов HTTP.

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

Таким образом, если первые два действия соответствуют соглашениям о наименовании (в начале содержат название метода HTTP), то к остальным мы применяем атрибуты, чтобы система знала, с каким методом надо сопоставлять запрос.

Средство Web API основано на добавлении в приложение ASP.NET MVC Framework контроллера специального вида. Эта разновидность контроллеров, которая называется , обладает двумя характеристиками:

Методы действий возвращают объекты моделей, а не объекты типа ActionResult.

Методы действий выбираются на основе HTTP-метода, используемого в запросе.

Объекты моделей, возвращаемые методом действия контроллера API, кодируются в формате JSON и отправляются клиенту. Контроллеры API предназначены для доставки веб-служб данных, поэтому они не поддерживают представления, компоновки или любые другие средства, которые применялись для генерации HTML-разметки в примере созданного приложения.

Отсутствие возможности у контроллера API генерировать HTML-разметку из представлений является причиной, по которой в одностраничных приложениях комбинируются стандартные приемы ASP.NET MVC Framework с Web API. Инфраструктура ASP.NET MVC Framework выполняет шаги, требуемые для доставки HTML-содержимого пользователю (включая аутентификацию, авторизацию, выбор и визуализацию представления). После того, как HTML-содержимое доставлено в браузер, запросы Ajax, генерируемые содержащимся внутри кодом JavaScript, будут обрабатываться контроллером Web API.

Как демонстрировалось ранее, в обычных контроллерах можно создавать методы действий, которые возвращают данные JSON для поддержки Ajax, но контроллер API предлагает альтернативный подход. Этот подход предусматривает отделение действий, относящихся к данным, от действий, связанных с представлением, и делает создание универсальных приложений Web API быстрым и простым.

Создание контроллера Web API

Добавление средства Web API к приложению осуществляется исключительно просто. Частично это объясняется тем, что создается элементарная веб-служба, но также и интеграцией с лежащей в основе инфраструктурой ASP.NET MVC Framework. В папке Controllers проекта создается файл класса по имени WebController.cs, в котором определяется контроллер, как показано в примере ниже:

Это и все, что требуется для создания контроллера API. Контроллер API имеет пять методов действий, которые отображаются на функциональные возможности хранилища и предоставляют доступ через веб-службу к объектам Reservation.

Тестирование контроллера API

Вскоре будут даны пояснения, как работает контроллер API, но сначала необходимо выполнить простой тест. Запустите приложение. После того, как браузер загрузит корневой URL проекта, перейдите на URL вида /api/web. Результат, который будет получен, зависит от применяемого браузера. Если вы используете Internet Explorer, то получите предложение сохранить или открыть файл, содержащий данные JSON.

Если переход на упомянутый URL осуществлялся с помощью другого браузера, такого как Google Chrome, то браузер отобразит приведенные ниже XML-данные:

Здесь интересно отметить пару моментов. Первый заключается в том, что запрос URL вида /api/web производит список всех объектов модели вместе с их свойствами, из которого можно сделать вывод, что был вызван метод действия GetAllReservations() контроллера Reservation.

Второй момент касается того, что разные браузеры получают разные форматы данных. Если вы попробуете сделать это самостоятельно, то можете получить другие результаты, т.к. в более поздних версиях браузеров может измениться способ выдачи запросов, однако вы заметите, что одни результаты имеют формат JSON, а другие — формат XML. (Также должно стать понятно, почему в веб-службах формат JSON почти повсеместно заменил XML. Формат XML более многословен и труден в обработке, особенно в случае использования JavaScript.)

Разные форматы данных применяются из-за того, что Web API использует HTTP-заголовок Accept в запросе для определения, с каким типом данных клиент предпочитает работать. Браузер Internet Explorer получает данные JSON, поскольку отправляет следующий заголовок Accept:

Браузер указывает, что в первую очередь предпочитает содержимое text/html, а затем application/xhtml+xml. Последняя часть заголовка Accept выглядит как */* и означает, что браузер будет принимать любой тип данных, если первые два оказываются недоступными.

Средство Web API поддерживает форматы JSON и XML, но отдает предпочтение формату JSON, который и будет использоваться в ответ на часть */* заголовка Accept для Internet Explorer. А вот заголовок Accept, отправляемый браузером Google Chrome:

Важная часть заголовка выделена полужирным: браузер Google Chrome указывает, что предпочитает получать данные application/xml перед */*. Контроллер Web API учитывает это предпочтение и доставляет данные в формате XML. Об этом упоминается потому, что общей проблемой, связанной с Web API, является получение данных в нежелательном формате. Подобное происходит из-за того, что заголовок Accept выдает неожиданное предпочтение относительно формата или вообще отсутствует в запросе.

Читайте также:  Apc smart ups 1000 схема электрическая

Работа контроллера API

Чтобы получить намного больше сведений о работе контроллера API, необходимо перейти на URL вида /api/web/3. Вы увидите следующие данные в формате XML (или в формате JSON, если применяется другой браузер):

На этот раз контроллер API возвратил детали объекта Reservation, значение свойства ReservationId которого соответствует последнему сегменту запрошенного URL. Формат и сегменты URL были описаны в статье Шаблоны URL, где объяснялась система маршрутизации ASP.NET MVC Framework.

Контроллеры API имеют собственную конфигурацию маршрутизации, полностью отделенную от остальных частей приложения. Для новых проектов Visual Studio создает стандартную конфигурацию в файле /App_Start/WebApiConfig.cs, содержимое которого приведено в примере ниже. Это один из файлов, которые Visual Studio добавляет в проект, если при его создании был отмечен флажок Web API.

Файл WebApiConfig.cs содержит маршруты, используемые контроллерами API, и применяет другие классы, отличающиеся от обычных маршрутов MVC, которые определены в файле RouteConfig.cs. Средство Web API реализовано как автономная функциональная возможность ASP.NET и может применяться за пределами инфраструктуры ASP.NET MVC Framework. Это означает, что в Microsoft продублировали ряд ключевых функций ASP.NET MVC Framework в пространстве имен System.Web.Http, чтобы обеспечить раздельное существование средств MVC и Web API. (При написании приложения ASP.NET MVC Framework такое дублирование выглядит странным, однако оно имеет смысл, т.к. в Microsoft пытаются ориентировать на использование средства Web API также и разработчиков, не применяющих шаблон MVC.)

Среда Visual Studio также помещает в метод Application_Start() класса Global.asax вызов Configure(), который добавит маршруты Web API к конфигурации приложения:

В результате приложение имеет два набора маршрутов: те, что используются для контроллеров ASP.NET MVC Framework, и те, что применяются для контроллеров Web API.

Выбор действия контроллером API

Стандартный маршрут Web API, который был показан в примере выше, имеет статический сегмент api, а также переменные сегментов controller и id, являющиеся необязательными. Ключевое отличие от обычного маршрута MVC состоит в том, что переменная сегмента action отсутствует — именно здесь формируется поведение контроллеров API.

Когда в приложение поступает запрос, соответствующий маршруту Web API, действие определяется на основе метода HTTP, используемого для выдачи запроса. При тестировании контроллера API путем запроса в браузере URL вида /api/reservation браузер укажет HTTP-метод GET.

Класс ApiController, который является базовым для контроллеров Web API, выясняет необходимый контроллер на основе маршрута и применяет метод HTTP для поиска подходящих методов действий.

Соглашение по именованию методов действий контроллера API предусматривает снабжение имени метода действия префиксом в виде поддерживаемого им HTTP-метода и включение ссылки на тип модели, с которым метод действия работает. Однако это просто соглашение, т.к. Web API будет обеспечивать соответствие любому методу действия, имя которого содержит метод HTTP, используемый для выполнения запроса.

В рассматриваемом примере запрос GET приведет в результате к выбору между GetAllReservations() и GetReservation(), но также бы подошли имена методов наподобие DoGetReservation() или даже ThisIsTheGetAction().

Чтобы принять решение, какой из этих двух методов действий выбрать, контроллер просматривает аргументы, которые они принимают, и с помощью переменных маршрутизации находит наилучшее соответствие. В случае запроса URL вида /api/reservation нет никаких переменных маршрутизации за исключением controller, поэтому выбирается метод GetAllReservations(), т.к. он не принимает аргументов.

При запросе URL вида /api/reservation/3 предоставляется значение для необязательной переменной сегмента id, что приведет к выбору метода GetReservation(), потому что он принимает аргумент id. Остальные действия в контроллере API ориентированы на другие HTTP-методы: POST, DELETE и PUT. Это основа для стиля средства Web API, чаще называемого службой, поддерживающей REST, когда операция указывается путем комбинирования URL и метода HTTP, используемого для ее запрашивания.

REST — это стиль API-интерфейса, а не хорошо определенная спецификация, поэтому существуют разногласия относительно того, какие в точности признаки делают веб-службу поддерживающей REST. Один из предметов спора связан с тем, что сторонники чистоты определений не считают веб-службы, которые возвращают данные в формате JSON, поддерживающими REST. Как и при любых разногласиях, касающихся архитектурного шаблона, претензии зачастую произвольны и неконкретны. Я стараюсь быть прагматичным в отношении применяемых шаблонов, поэтому считаю службы JSON поддерживающими REST.

Отображение методов HTTP на методы действий

Ранее было указано, что базовый класс ApiController использует метод HTTP для выяснения, на какие методы действий направлять запросы. Это хороший подход, но он означает применение неестественных имен методов, которые не соответствуют соглашениям об именовании, используемым в остальных частях приложения. Например, метод PutReservation() мог бы иметь более естественное имя UpdateReservation(). Мало того, что имя UpdateReservation() делает очевидным назначение этого метода (обновить заявку на бронирование), но оно может также обеспечить более прямое отображение между действиями в контроллере и методами в хранилище.

У вас может возникнуть соблазн унаследовать класс хранилища от ApiController и открыть методы хранилища напрямую как Web API. Настоятельно рекомендуется не поступать так, а создавать отдельный контроллер, даже если он настолько же прост, как в рассматриваемом примере. В какой-то момент методы, которые вы хотите предоставлять через Web API, станут идти вразрез с возможностями хранилища, и наличие отдельного класса контроллера API упростит управление этим.

В этом руководстве используется веб-API ASP.NET для создания веб-API, который возвращает список продуктов. In this tutorial, you will use ASP.NET Web API to create a web API that returns a list of products.

HTTP не только для предоставления веб-страниц. HTTP is not just for serving up web pages. Протокол HTTP также является мощной платформой для создания API, которые предоставляют службы и данные. HTTP is also a powerful platform for building APIs that expose services and data. HTTP — простую, гибкую и повсеместно. HTTP is simple, flexible, and ubiquitous. Практически любой платформе, можно представить себе имеет библиотеки HTTP, поэтому службы HTTP могут стать идеальным широкого круга клиентов, включая браузеры мобильных устройств и Классические приложения. Almost any platform that you can think of has an HTTP library, so HTTP services can reach a broad range of clients, including browsers, mobile devices, and traditional desktop applications.

Веб-API ASP.NET — это платформа для создания веб-API-интерфейсы на основе .NET Framework. ASP.NET Web API is a framework for building web APIs on top of the .NET Framework.

Версии программного обеспечения, используемые в этом руководстве Software versions used in the tutorial

  • Visual Studio 2017 Visual Studio 2017
  • Веб-API 2 Web API 2

Создать проект веб-API Create a Web API Project

В этом руководстве используется веб-API ASP.NET для создания веб-API, который возвращает список продуктов. In this tutorial, you will use ASP.NET Web API to create a web API that returns a list of products. Интерфейсный веб-страницы использует jQuery для отображения результатов. The front-end web page uses jQuery to display the results.

Запустите Visual Studio и выберите новый проект из запустить страницы. Start Visual Studio and select New Project from the Start page. Или с файл меню, выберите New и затем проекта. Or, from the File menu, select New and then Project.

Читайте также:  Red orchestra 2 rising storm прохождение

В шаблоны области выберите установленные шаблоны и разверните Visual C# узла. In the Templates pane, select Installed Templates and expand the Visual C# node. В разделе Visual C# выберите Web. Under Visual C#, select Web. В списке шаблонов проектов выберите веб-приложение ASP.NET. In the list of project templates, select ASP.NET Web Application. Присвойте проекту имя «ProductsApp» и нажмите кнопку ОК. Name the project "ProductsApp" and click OK.

В новый проект ASP.NET диалоговом окне выберите пустой шаблона. In the New ASP.NET Project dialog, select the Empty template. В разделе "добавить папки и основные ссылки для", проверьте веб-API. Under "Add folders and core references for", check Web API. Нажмите кнопку ОК. Click OK.

Можно также создать проект веб-API с помощью "веб-API" шаблона. You can also create a Web API project using the "Web API" template. Шаблон веб-API ASP.NET MVC использует для предоставления страницы справки по API. The Web API template uses ASP.NET MVC to provide API help pages. Я использую пустой шаблон в этом руководстве, поскольку я хочу показать веб-API без MVC. I’m using the Empty template for this tutorial because I want to show Web API without MVC. В общем случае не нужно знать ASP.NET MVC позволяет использовать веб-API. In general, you don’t need to know ASP.NET MVC to use Web API.

Добавление модели Adding a Model

Модель — это объект, представляющий данные в приложении. A model is an object that represents the data in your application. Веб-API ASP.NET может автоматически сериализовать модель в JSON, XML или другом формате, а затем записывает сериализованные данные в тексте сообщения HTTP-ответа. ASP.NET Web API can automatically serialize your model to JSON, XML, or some other format, and then write the serialized data into the body of the HTTP response message. До тех пор, пока клиент может прочитать формат сериализации, он может выполнить десериализацию объекта. As long as a client can read the serialization format, it can deserialize the object. Большинство клиентов может выполнить синтаксический анализ XML или JSON. Most clients can parse either XML or JSON. Кроме того клиент может указать, какой формат, ему, задав заголовок Accept в сообщении запроса HTTP. Moreover, the client can indicate which format it wants by setting the Accept header in the HTTP request message.

Давайте сначала создадим простую модель, которая представляет продукт. Let’s start by creating a simple model that represents a product.

Если обозреватель решений не отображается, нажмите кнопку представление меню и выберите обозревателе решений. If Solution Explorer is not already visible, click the View menu and select Solution Explorer. В обозревателе решений щелкните правой кнопкой мыши папку Models. In Solution Explorer, right-click the Models folder. В контекстном меню выберите добавить выберите класс. From the context menu, select Add then select Class.

Назовите класс "продукта". Name the class "Product". Добавьте следующие свойства Product класса. Add the following properties to the Product class.

Добавление контроллера Adding a Controller

В веб-API контроллера — это объект, который обрабатывает HTTP-запросы. In Web API, a controller is an object that handles HTTP requests. Мы добавим контроллер, который может возвращать список продуктов и один продукт, указываемого идентификатором. We’ll add a controller that can return either a list of products or a single product specified by ID.

Если вы использовали ASP.NET MVC, вы уже знакомы с контроллерами. If you have used ASP.NET MVC, you are already familiar with controllers. Контроллеры веб-API похожи на контроллеры MVC, но наследуется ApiController вместо класса контроллера класса. Web API controllers are similar to MVC controllers, but inherit the ApiController class instead of the Controller class.

В обозревателе решений, щелкните правой кнопкой мыши папку Controllers. In Solution Explorer, right-click the Controllers folder. Выберите добавить , а затем выберите контроллера. Select Add and then select Controller.

В Добавление шаблона диалоговом окне выберите контроллер Web API — пустой. In the Add Scaffold dialog, select Web API Controller — Empty. Нажмите кнопку Добавить. Click Add.

В Добавление контроллера диалоговое окно, назовите контроллер "ProductsController". In the Add Controller dialog, name the controller "ProductsController". Нажмите кнопку Добавить. Click Add.

Формирование шаблонов создает файл с именем ProductsController.cs в папку "контроллеры". The scaffolding creates a file named ProductsController.cs in the Controllers folder.

Не нужно поместить в папку с именем контроллеры контроллеров. You don’t need to put your controllers into a folder named Controllers. Имя папки — это просто удобный способ организации исходные файлы. The folder name is just a convenient way to organize your source files.

Если этот файл еще не открыт, дважды щелкните файл, чтобы открыть его. If this file is not open already, double-click the file to open it. Замените код в этот файл следующее: Replace the code in this file with the following:

Для простоты в примере, продукты, хранятся в массив фиксированной длины внутри класса контроллера. To keep the example simple, products are stored in a fixed array inside the controller class. Разумеется в реальном приложении бы запрос к базе данных или использовать другого источника внешних данных. Of course, in a real application, you would query a database or use some other external data source.

Контроллер определяет два метода, которые возвращают продуктов: The controller defines two methods that return products:

    GetAllProducts Метод возвращает весь список продуктов, как IEnumerable типа. The GetAllProducts method returns the entire list of products as an IEnumerable

type.

  • GetProduct Метод ищет один продукт по его идентификатору. The GetProduct method looks up a single product by its ID.
  • Вот и все! That’s it! У вас есть рабочий веб-API. You have a working web API. Каждый метод в контроллере соответствует на один или несколько URI: Each method on the controller corresponds to one or more URIs:

    Метод контроллера Controller Method URI URI
    GetAllProducts GetAllProducts / api/продуктов /api/products
    GetProduct GetProduct /API/продукты/идентификатор /api/products/id

    Для GetProduct метод, идентификатор в URI — это. For the GetProduct method, the id in the URI is a placeholder. Например, чтобы получить продукт с Идентификатором 5, URI имеет api/products/5 . For example, to get the product with ID of 5, the URI is api/products/5 .

    Дополнительные сведения о том, как веб-API направляет HTTP-запросов в методы контроллера, см. в разделе маршрутизации в ASP.NET Web API. For more information about how Web API routes HTTP requests to controller methods, see Routing in ASP.NET Web API.

    Вызов веб-API с помощью Javascript и jQuery Calling the Web API with Javascript and jQuery

    В этом разделе мы добавим страницу HTML, которое использует AJAX для вызова веб-API. In this section, we’ll add an HTML page that uses AJAX to call the web API. Мы будем использовать jQuery для выполнения вызовов AJAX, так и для обновления страницы с результатами. We’ll use jQuery to make the AJAX calls and also to update the page with the results.

    Читайте также:  Epson sx130 заправка картриджа

    В обозревателе решений щелкните правой кнопкой мыши проект и выберите добавить, а затем выберите новый элемент. In Solution Explorer, right-click the project and select Add, then select New Item.

    В Добавление нового элемента диалоговое окно, выберите Web в узле Visual C#, а затем выберите HTML-страницу элемента. In the Add New Item dialog, select the Web node under Visual C#, and then select the HTML Page item. Присвойте странице имя "index.html". Name the page "index.html".

    Замените все содержимое этого файла следующим кодом: Replace everything in this file with the following:

    Для получения jQuery можно использовать следующие способы. There are several ways to get jQuery. В этом примере я использовал сети доставки Содержимого Microsoft Ajax. In this example, I used the Microsoft Ajax CDN. Вы также можете скачать его из http://jquery.com/ и ASP.NET «Веб-API» шаблон проекта включает также jQuery. You can also download it from http://jquery.com/, and the ASP.NET "Web API" project template includes jQuery as well.

    Получение списка продуктов Getting a List of Products

    Для получения списка продуктов, отправьте запрос HTTP GET к "/api/products". To get a list of products, send an HTTP GET request to "/api/products".

    JQuery getJSON функция отправляет запрос AJAX. The jQuery getJSON function sends an AJAX request. Ответ содержит массив объектов JSON. For response contains array of JSON objects. done Функция задает обратный вызов, который вызывается, если запрос выполнен успешно. The done function specifies a callback that is called if the request succeeds. В обратный вызов Мы обновляем DOM с помощью информации о продукте. In the callback, we update the DOM with the product information.

    Получение продукта по Идентификатору Getting a Product By ID

    Для получения продуктов по Идентификатору, отправьте запрос HTTP GET к "/API/продукты/идентификатор", где идентификатор идентификатор продукта. To get a product by ID, send an HTTP GET request to "/api/products/id", where id is the product ID.

    Мы по-прежнему вызвать getJSON для отправки запроса AJAX, но на этот раз мы поместили идентификатор в URI запроса. We still call getJSON to send the AJAX request, but this time we put the ID in the request URI. Ответ от этого запроса — это представление JSON за единицу продукта. The response from this request is a JSON representation of a single product.

    Запуск приложения Running the Application

    Нажмите клавишу F5, чтобы начать отладку приложения. Press F5 to start debugging the application. Веб-страницы должна выглядеть следующим образом: The web page should look like the following:

    Чтобы получить продукт по Идентификатору, введите код и нажмите кнопку поиска: To get a product by ID, enter the ID and click Search:

    Если введен недопустимый идентификатор, сервер возвращает ошибку HTTP: If you enter an invalid ID, the server returns an HTTP error:

    С помощью F12 для просмотра HTTP-запроса и ответа Using F12 to View the HTTP Request and Response

    При работе с HTTP-службу, может быть полезно для сообщений запросов и см. в разделе HTTP-запроса. When you are working with an HTTP service, it can be very useful to see the HTTP request and request messages. Это можно сделать с помощью средств разработчика F12 в Internet Explorer 9. You can do this by using the F12 developer tools in Internet Explorer 9. Internet Explorer 9, нажмите F12 чтобы открыть средства. From Internet Explorer 9, press F12 to open the tools. Нажмите кнопку сети вкладку и нажмите клавишу начать захват. Click the Network tab and press Start Capturing. Теперь вернитесь к веб-страницы и нажмите клавишу F5 перезагрузить веб-страницы. Now go back to the web page and press F5 to reload the web page. Internet Explorer захватывает HTTP-трафика между браузером и веб-сервера. Internet Explorer will capture the HTTP traffic between the browser and the web server. Представление "Сводка" показывает весь сетевой трафик для страницы: The summary view shows all the network traffic for a page:

    Найдите запись для относительного URI «api/products /». Locate the entry for the relative URI "api/products/". Выберите эту запись и нажмите кнопку перейдите к представлению подробные. Select this entry and click Go to detailed view. В представлении «Подробности» есть вкладки для просмотра заголовков запроса и ответа и текст. In the detail view, there are tabs to view the request and response headers and bodies. Например, если щелкнуть заголовки запроса вкладке, можно увидеть, что клиент запросил "application/json" в заголовке Accept. For example, if you click the Request headers tab, you can see that the client requested "application/json" in the Accept header.

    Если щелкнуть вкладку тело ответа, вы увидите сообщение о том, как список продуктов был сериализован в формат JSON. If you click the Response body tab, you can see how the product list was serialized to JSON. Другие браузеры имеют схожие функции. Other browsers have similar functionality. Другой полезный инструмент — Fiddler, веб-прокси для отладки. Another useful tool is Fiddler, a web debugging proxy. Можно использовать Fiddler для просмотра трафик HTTP, а также для составления HTTP-запросов, который дает полный контроль над заголовков HTTP в запросе. You can use Fiddler to view your HTTP traffic, and also to compose HTTP requests, which gives you full control over the HTTP headers in the request.

    Это приложение работает в Azure см. в разделе See this App Running on Azure

    Вы действительно хотите см. по завершении сайт, запущенный в качестве активного веб-приложения? Would you like to see the finished site running as a live web app? Полную версию приложения можно развернуть учетную запись Azure, просто нажав кнопку ниже. You can deploy a complete version of the app to your Azure account by simply clicking the following button.

    Требуется учетная запись Azure для развертывания этого решения в Azure. You need an Azure account to deploy this solution to Azure. Если у вас еще нет учетной записи, у вас есть следующие параметры: If you do not already have an account, you have the following options:

    • Открыть учетную запись Azure бесплатно -вы получаете кредиты можно использовать для опробования платных служб Azure и даже в том случае, если они используются, вы сохраняете учетную запись и использовать бесплатные службы Azure. Open an Azure account for free — You get credits you can use to try out paid Azure services, and even after they’re used up you can keep the account and use free Azure services.
    • Активировать преимущества подписчика MSDN -ваша подписка MSDN предоставляет вам кредиты каждый месяц, который можно использовать для оплаты служб Azure. Activate MSDN subscriber benefits — Your MSDN subscription gives you credits every month that you can use for paid Azure services.
    Ссылка на основную публикацию
    Adblock detector