Planfact.AmoCrm.Client
1.1.0
dotnet add package Planfact.AmoCrm.Client --version 1.1.0
NuGet\Install-Package Planfact.AmoCrm.Client -Version 1.1.0
<PackageReference Include="Planfact.AmoCrm.Client" Version="1.1.0" />
<PackageVersion Include="Planfact.AmoCrm.Client" Version="1.1.0" />
<PackageReference Include="Planfact.AmoCrm.Client" />
paket add Planfact.AmoCrm.Client --version 1.1.0
#r "nuget: Planfact.AmoCrm.Client, 1.1.0"
#:package Planfact.AmoCrm.Client@1.1.0
#addin nuget:?package=Planfact.AmoCrm.Client&version=1.1.0
#tool nuget:?package=Planfact.AmoCrm.Client&version=1.1.0
AmoCrm.Client
Идиоматичный и типобезопасный .NET клиент для работы с amoCRM API v4 с поддержкой кэширования и OAuth 2.0.
Особенности
- 🛠️ Типобезопасность - строго типизированные модели для всех сущностей amoCRM
- 🔐 OAuth 2.0 - поддержка клиентских и серверных интеграций
- 🛡️ Надежность - политики повтора, валидация данных, обработка ошибок
- 💾 HTTP-кэширование - прозрачное кэширование ответов API (10 минут TTL)
- 📝 Структурное логирование - Microsoft.Extensions.Logging
- ⚙️ Гибкая конфигурация - настройка как через код, так и через appsettings.json с поддержкой options pattern
- 🧩 DI интеграция - готовые расширения для ASP.NET Core
- 🧪 Тестируемость - проект включает набор unit-тестов, все зависимости легко мокаются
Поддержка платформ
- .NET 6.0+
- .NET 8.0+
- .NET 9.0+
Установка
dotnet add package Planfact.AmoCrm.Client
Быстрый старт
// Program.cs
builder.Services.AddAmoCrmClient(builder.Configuration);
// Внедрение зависимости
public class AccountService
{
private readonly IAmoCrmClient _amoCrmClient;
public AccountService(IAmoCrmClient amoCrmClient)
{
_amoCrmClient = amoCrmClient;
}
public async Task<AccountBusinessModel> GetAccountAsync(string accessToken, string subdomain)
{
AccountResponse account = await _amoCrmClient.GetAccountAsync(accessToken, subdomain);
return new AccountBusinessModel(account);
}
}
Тестирование
В текущей реализации проект содержит более 500 unit тестов, обеспечивающих покрытие основной функциональности. В ходе развития проекта будут реализованы интеграционные тесты и snapshot-тесты контракта API
Запуск тестов
dotnet test Planfact.AmoCrm.Client.Tests
Документация
Лицензия
MIT License. См. LICENSE для деталей.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Configuration (>= 9.0.9)
- Microsoft.Extensions.Logging (>= 9.0.9)
- Microsoft.Extensions.Options (>= 9.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.9)
- Reliable.HttpClient (>= 1.3.0)
- Reliable.HttpClient.Caching (>= 1.4.0)
-
net8.0
- Microsoft.Extensions.Configuration (>= 9.0.9)
- Microsoft.Extensions.Logging (>= 9.0.9)
- Microsoft.Extensions.Options (>= 9.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.9)
- Reliable.HttpClient (>= 1.3.0)
- Reliable.HttpClient.Caching (>= 1.4.0)
-
net9.0
- Microsoft.Extensions.Configuration (>= 9.0.9)
- Microsoft.Extensions.Logging (>= 9.0.9)
- Microsoft.Extensions.Options (>= 9.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.9)
- Reliable.HttpClient (>= 1.3.0)
- Reliable.HttpClient.Caching (>= 1.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
🎉 Релиз v1.1.0 – Поддержка загрузки связанных сущностей через query-параметр with
✨ Что нового:
• Добавлены перегрузки методов получения данных для сделок, компаний, контактов и покупателей, поддерживающие параметр linkedEntityTypes
• Параметр linkedEntityTypes используется для генерации query-параметра with в запросах к API amoCRM, что позволяет получать связанные сущности (например, сделки контакта, компании покупателя)
• Новая функциональность реализована как для обычных, так и для Internal-методов (серверная интеграция)
🔧 Улучшения и исправления:
• Исправлен баг, связанный с некорректной обработкой числовых значений в дополнительных полях сущностей amoCRM
• Улучшена логика формирования query-параметра query при поиске по вхождению:
- Пустые и whitespace-only значения больше не добавляются в URI
- Значения автоматически обрезаются от начальных и конечных пробелов перед экранированием
✅ Обратная совместимость:
Изменения направлены на расширение имеющейся функциональности и не нарушают обратную совместимость публичного API библиотеки Planfact.AmoCrm.Client.