https://github.com/RestCode/WebApiProxy
Этот исходный код был изменён в соответствии с личными требованиями.
Проект состоит из расширения серверной части, предоставляющей прокси-конечную точку для предоставления метаданных сервиса, а также клиента-прокси на JavaScript и задачи генерации клиентского прокси на C#.#### Серверная часть прокси-провайдера Начало работы Установка через NuGet Расширяйте ваш ASP.NET Web API сервис установкой этого пакета из NuGet:
Install-Package WebApiProxy
Примечание: Этот пакет требует основных библиотек ASP.NET Web API (версия bk 5 или выше).
Зарегистрировать конечную точку прокси
Необходимо явно зарегистрировать маршрут конечной точки прокси. Это можно сделать с помощью метода расширения RegisterProxyRoutes
, который расширяет HttpConfiguration
:
config.RegisterProxyRoutes();
Примечание: Убедитесь, что вы включили пространство имён WebApiProxy.Server
.
Это регистрирует ваш сервис с дополнительной конечной точкой по адресу /api/proxies
. Также возможно указать пользовательский адрес, передав параметр routeTemplate
:
config.RegisterProxyRoutes("$metadata");
Использование
Это расширение предоставляет конечную точку прокси в вашем сервисе (по адресу /api/proxies
) для обслуживания JavaScript и метаданных сервиса.
Допустим, у вас есть API для людей на сервере:
public class PeopleController : ApiController {
public Person[] Get() { }
public Person Get(int id) { }
}
Вы можете использовать его следующим образом на стороне клиента с использованием JavaScript:
$.proxies.person.get()
.done(function(people) {
// что-то делаем с people
});
$.proxies.person.get(2)
.done(function(person) {
// что-то делаем с person
});
```#### Прокси на JavaScript
Просто ссылайтесь на предоставленную конечную точку прокси внутри вашего HTML, и вы будете готовы к работе:
Эта функциональность была адаптирована от ProxyApi — спасибо Стивену Грейтрексу :)
Получение метаданных сервиса
Вызовите сервис по его конечной точке прокси `/api/proxies` с заголовком запроса `X-Proxy-Type` как `"metadata"` и метаданные сервиса вместе с документацией будут содержаться в ответе.
Исключение контроллеров
Вы можете исключить свои контроллеры, просто декорируя их атрибутом `ExcludeProxy`.
### Клиентская часть генератора прокси
Создайте прокси на стороне клиента на основе метаданных, предоставленных службой, реализующей WebApiProxy.
**Установка через NuGet**
Установите этот пакет с помощью NuGet:
Install-Package WebApiProxy.CSharp
Примечание: Этот пакет требует библиотек ASP.NET Web API Client версии 5.2 или выше **Генерация**
Примечание: Автоматическая генерация кода при сборке проекта теперь полностью опциональна. Вам нужно явно указать, хотите ли вы, чтобы прокси генерировался при каждой сборке.
Код прокси на C# будет генерироваться каждый раз при повторной сборке проекта (только если вы явно указали `generateOnBuild="true"`), и он основан на конкретной конфигурации в файле WebApiProxy.config:
Использование
При наличии контроллера PeopleController
на стороне службы:
public class PeopleController : ApiController
{
/// <summary>
/// Получает всех людей с данным именем
/// </summary>
/// <param name="name">Критерий поиска</param>
/// <returns>Коллекция людей</returns>
public Person[] Get(string name)
{
return new Person[]{
new Person { Id = 3, FirstName = "sss", LastName = "sqqqq"},
new Person { Id = 3, FirstName = "sss", LastName = "sqqqq"}
};
}
}
может использоваться следующим образом на стороне клиента:
using (var client = new PeopleClient())
{
var response = await client.GetAsync("Фани");
var people = await response.Content.ReadAsAsync<Person[]>();
}
``` _**Код сниппета**_
Используйте сниппет кода `WebApiProxy` для быстрого создания указанной выше структуры кода. Просто введите `"webapiproxy"` и нажмите клавишу TAB.
Примечание: Если типы не найдены (или не были разрешены) после сборки, просто перезапустите свой проект или перезапустите Visual Studio.
Отличный опыт разработчика с поддержкой IntelliSense. У него даже есть удобный IntelliSense с включенной документацией, предоставленной провайдером документации:

Примечание: Документация в IntelliSense будет отображаться только в том случае, если служба использует провайдера документации. Вы можете использовать пакет ASP.NET Web API Help Page на NuGet.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )