Сегодня мы рады объявить о доступности новой версии библиотеки-помощника для C#. Готовьтесь к новому уровню продуктивности.
C# стал последним дополнением к семейству библиотек-помощников нового поколения от Twilio, наряду с недавно выпущенными библиотеками для PHP и Java. Мы полностью переработали библиотеку для C#, учтя отзывы сообщества .NET-разработчиков.
Чтобы узнать больше о нашем инновационном подходе к созданию более согласованных библиотек-помощников, ускорению итераций и улучшению библиотек за счет общей основы для разных языков, ознакомьтесь с нашим блог-постом, посвященным библиотекам-помощникам нового поколения от Twilio.
Следующим языком, для которого мы выпустим библиотеку, станет Python, но сначала давайте подробнее рассмотрим C#.
Библиотека-помощник Twilio для C# стала более интуитивно понятной и получила расширенную совместимость с фреймворками.
Основные улучшения в новой библиотеке:
— Полная кроссплатформенная поддержка .NET Core (.NET Standard 1.4)
— Поддержка async/await
— Автоматическая постраничная загрузка при запросе списка ресурсов
— Добавление вспомогательных классов для генерации TwiML
— Сохранена совместимость вплоть до версии .NET Framework 3.5
Мы приложили все усилия, чтобы новая библиотека была совместима с широким спектром платформ .NET, особенно с .NET Standard 1.4. Мы не смогли бы этого добиться без помощи сообщества .NET, в частности Гутенберга Рибейро из Бразилии, который помог нам разобраться с новой системой сборки .NET, чтобы мы могли ориентироваться как на .NET Standard, так и на версию 3.5.
Поддержка .NET Standard означает, что библиотеку-помощник Twilio для C# можно использовать с кроссплатформенными приложениями .NET Core, а это значит, что все примеры кода из нашей документации будут работать на Mac и Linux, помимо Windows.
Кстати, о примерах — давайте рассмотрим некоторые из них.
Инициализация клиента для будущих вызовов REST API теперь выполняется с помощью статического метода. Нет необходимости создавать объект клиента.
Это нужно сделать только один раз. Все последующие вызовы API Twilio будут аутентифицированы с использованием учетных данных, переданных в метод Init. На самом деле, в .NET 4.5.1 и выше (включая .NET Core) это создает статический HttpClient, который будет повторно использоваться для всех ваших запросов к API (перевод: выполнение нескольких запросов к API станет намного быстрее).
Каждому ресурсу в REST API Twilio соответствует класс на C#. Хотите работать с SMS-сообщениями? Вам нужен класс MessageResource. Телефонные звонки? Обратите внимание на CallResource.
Каждый класс ресурса имеет набор статических методов:
— Fetch: Получает экземпляр ресурса
— Create: Создает новый экземпляр ресурса
— Update: Изменяет экземпляр ресурса
— Delete: Удаляет экземпляр ресурса
— Read: Выводит список экземпляров ресурса
Если метод не поддерживается Twilio для данного ресурса, он исключается из класса.
В предыдущих версиях библиотеки-помощника вам приходилось заботиться о постраничной загрузке. Вы получали одну страницу результатов, а затем продолжали запрашивать страницы, пока не получали все необходимые ресурсы. Теперь постраничная загрузка обрабатывается автоматически.
Чтобы узнать больше о том, как используются классы ресурсов, ознакомьтесь с руководством по миграции для C#.
Если вы используете .NET Framework 4.5.1+ или .NET Core 1.0+, то можете использовать асинхронные версии методов Create, Fetch, Read, Update и Delete для ресурсов. Как и следовало ожидать, эти методы называются CreateAsync, FetchAsync, ReadAsync, UpdateAsync и DeleteAsync.
В Twilio C# SDK теперь включены вспомогательные классы для генерации TwiML. Существует два класса, которые можно использовать для генерации TwiML: Twilio.TwiML.VoiceResponse и Twilio.TwiML.MessagingResponse. Первый используется для обработки голосовых вызовов, а второй — для ответов на текстовые сообщения.
Чтобы написать TwiML для обработки телефонного звонка, просто создайте экземпляр класса VoiceResponse и вызовите методы нового объекта, соответствующие различным глаголам TwiML. Например, вот код, который воспроизводит приветствие и затем соединяет звонок с другим номером телефона:
Вы можете вызвать response.ToString(), чтобы получить следующий вывод TwiML:
Существует несколько отличных ресурсов, которые помогут вам начать работу с новой библиотекой:
— Руководство по началу работы, которое охватывает установку и отправку первого сообщения.
— Наши руководства и учебные материалы содержат примеры кода для различных сценариев использования.
— Автоматически сгенерированная документация библиотеки — полезный справочный материал.
— Руководство по миграции особенно полезно, если вы знакомы с предыдущей версией. Оно охватывает некоторые новые функции и подчеркивает различия.
Новые библиотеки выпускаются в двух версиях в соответствии с нашей стратегией версионирования:
— Основная версия, содержащая наши продукты общедоступной версии (GA) и являющаяся наиболее стабильным релизом
— Версия ‘edge’, которая включает новые функции, находящиеся на стадии Developer Preview или Beta. Здесь вы можете найти более подробное описание нашей стратегии версионирования.
Новые функции будут добавляться только в новые библиотеки (C# 5.x). Старые библиотеки (C# 4.x) будут официально поддерживаться до 31.05.2017. После этой даты Twilio перестанет предоставлять исправления ошибок, и служба поддержки может попросить вас обновиться перед отладкой проблем.
Нам очень важна ваша обратная связь по нашим другим кандидатам на релиз. Они доступны на GitHub, и мы будем рады вашим тикетам с проблемами и запросам на включение изменений.