1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jucheap-WebApiProxy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

https://github.com/RestCode/WebApiProxy
Этот исходный код был изменён в соответствии с личными требованиями.

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, и вы будете готовы к работе:
<script src="/api/proxies" type="text/javascript"></script>
Эта функциональность была адаптирована от 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:
``` Свойство `endpoint` обязательно и предоставляет генератору URI точки метаданных. Для получения более подробной информации о конфигурационном файле, прочитайте страницу [Конфигурационного файла WebApiProxy](https://example.com/WebApiProxyConfig). Примечание: Генерируемый код кэшируется для избежания ошибок компиляции, если сервис недоступен в данный момент времени. **Генерация прокси с помощью консоли управления пакетами NuGet** Вы также можете сгенерировать код прокси по запросу с помощью консоли управления пакетами NuGet. Просто запустите командлет: ``` WebApiProxy-Generate-CSharp ```

Использование При наличии контроллера 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 с включенной документацией, предоставленной провайдером документации:

  ![введите описание изображения здесь](http://git.oschina.net/uploads/images/2016/1129/084914_fe92d4ef_422345.png "Введите здесь заголовок изображения")

Примечание: Документация в IntelliSense будет отображаться только в том случае, если служба использует провайдера документации. Вы можете использовать пакет ASP.NET Web API Help Page на NuGet.

Комментарии ( 0 )

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

Введение

Аспт Веб API Прокси ДжаваСкрипт СиШарп. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jucheap-WebApiProxy.git
git@api.gitlife.ru:oschina-mirror/jucheap-WebApiProxy.git
oschina-mirror
jucheap-WebApiProxy
jucheap-WebApiProxy
master