Mud.Feishu.DataModels 3.0.0

dotnet add package Mud.Feishu.DataModels --version 3.0.0
                    
NuGet\Install-Package Mud.Feishu.DataModels -Version 3.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mud.Feishu.DataModels" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mud.Feishu.DataModels" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Mud.Feishu.DataModels" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mud.Feishu.DataModels --version 3.0.0
                    
#r "nuget: Mud.Feishu.DataModels, 3.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mud.Feishu.DataModels@3.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mud.Feishu.DataModels&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Mud.Feishu.DataModels&version=3.0.0
                    
Install as a Cake Tool

Mud.Feishu.DataModels

飞书 HTTP API 强类型数据模型库,为 Mud.Feishu 核心 HTTP API 客户端提供完整的请求/响应数据模型定义。

项目简介

Mud.Feishu.DataModels 是 MudFeishu SDK 的数据模型层,专门用于封装飞书开放平台所有 HTTP API 的请求参数和响应结果。项目采用强类型设计,所有模型均带有完整的 XML 文档注释和 JSON 序列化特性标注,帮助开发者在编译时获得类型安全保障,并通过智能提示快速了解字段含义。

💡 本项目是 Mud.Feishu 的隐式依赖,安装 Mud.Feishu 后将自动引入,通常无需单独安装。

特性

  • ✅ 强类型数据模型 - 所有 API 的请求参数和响应结果均有完整类型定义
  • ✅ 完整 JSON 标注 - 使用 [JsonPropertyName] 精确映射飞书 API 字段
  • ✅ XML 文档注释 - 每个公共属性均有中文文档注释,支持智能提示
  • ✅ 按模块组织 - 数据模型按飞书 API 模块分目录组织,结构清晰
  • ✅ 请求/响应分离 - 每个模块下 RequestModel 和 ResponseModel 独立管理
  • ✅ 公共模型复用 - Common 命名空间提供分页、通用筛选等共享模型
  • ✅ 多框架支持 - 支持 .NET Standard 2.0、.NET 6.0、.NET 8.0、.NET 10.0,兼容 .NET Framework 4.6.1+
  • ✅ 原生 AOT 支持 - 全量 DTO 由源生成 JsonSerializerContext 覆盖,net8.0+ 一等公民支持 Native AOT 发布

数据模型模块总览

模块 命名空间 说明
🤖 AI 能力 Mud.Feishu.DataModels.AI 文档解析、OCR 识别、语音转文字、文本翻译
📋 审批流程 Mud.Feishu.DataModels.Approval 审批定义、实例、任务、评论、表单、外部审批、文件、消息、查询
⏰ 考勤管理 Mud.Feishu.DataModels.Attendance 考勤组、打卡流水、班次、请假、补卡、统计、档案、用户设置、每日排班
📋 多维表格 Mud.Feishu.DataModels.Bitable 应用、数据表、记录、字段、视图、表单、仪表盘、角色、自动化流程
🎨 画板管理 Mud.Feishu.DataModels.Board 画板主题、节点请求/响应模型
📅 日历日程 Mud.Feishu.DataModels.Calendar 日历管理、日程事件、ACL 访问控制
🎴 卡片管理 Mud.Feishu.DataModels.Card 卡片实体、卡片元素、消息流卡片
🏢 群聊管理 Mud.Feishu.DataModels.ChatGroup 群组、群成员、群公告、群菜单、群标签页
🔧 公共模型 Mud.Feishu.DataModels.Common 分页请求/结果、通用筛选、头像、自定义字段等共享模型
📄 文档管理 Mud.Feishu.DataModels.Docx 文档操作、文档块、通用文档模型
☁️ 云盘管理 Mud.Feishu.DataModels.Drive 文件、文件夹、版本、媒体、权限、评论、订阅
🎧 服务台 Mud.Feishu.DataModels.HelpDesk 客服管理、技能、排班、工单、工单消息
📧 邮箱管理 Mud.Feishu.DataModels.Mail 别名、联系人、草稿、事件、文件夹、邮件组、标签、模板、消息、公共邮箱、规则、会话
💬 消息服务 Mud.Feishu.DataModels.Messages 消息请求/响应模型,批量消息
👥 组织架构 Mud.Feishu.DataModels.Organization 用户、部门(V1/V3)、员工、人员类型、职务族、职级、职务、角色、单位、用户组、工作城市
🔍 搜索 Mud.Feishu.DataModels.Search 数据源、文档/知识库搜索、套件搜索
📊 电子表格 Mud.Feishu.DataModels.Spreadsheets 单元格、条件格式、数据、数据验证、筛选、筛选视图、浮动图片、保护范围
📝 任务管理 Mud.Feishu.DataModels.Task 任务、任务清单、任务分组、自定义字段、评论、附件、活动订阅
📹 视频会议 Mud.Feishu.DataModels.VideoConferencing 会议、配置、导出、会议数据、纪要、录制、报告、会议室、会议室层级
📚 知识库 Mud.Feishu.DataModels.Wiki 知识空间、空间成员、知识节点

命名规范

数据模型按以下约定组织:

Mud.Feishu.DataModels/
├── {Module}/                    # API 模块(如 Approval、Organization)
│   ├── {SubModule}/             # 子模块(如 ApprovalTask、ApprovalQuery)
│   │   ├── Common/              # 子模块公共模型
│   │   ├── RequestModel/        # 请求参数模型
│   │   └── ResponseModel/       # 响应结果模型
│   └── {SharedModel}.cs         # 模块级共享模型
└── Common/                      # 全局共享模型
    ├── PageRequest.cs           # 分页请求基类
    ├── PageListResult.cs        # 分页结果基类
    └── ...

模型命名约定

模型类型 命名约定 示例
请求模型 {Operation}Request CreateUserRequest、SendMessageRequest
响应模型 {Operation}Result CreateUserResult、GetUserInfoResult
列表结果 {Entity}ListResult GetDepartmentListResult
公共模型 {Entity}Info / {Entity}Data UserInfo、TaskData

安装

dotnet add package Mud.Feishu.DataModels

💡 通常无需单独安装,Mud.Feishu 已包含本项目作为依赖。

使用示例

1. 配合 Mud.Feishu API 接口使用

using Mud.Feishu.DataModels.Organization;
using Mud.Feishu.DataModels.Messages;

public class UserService
{
    private readonly IFeishuTenantV3User _userApi;

    public UserService(IFeishuTenantV3User userApi)
    {
        _userApi = userApi;
    }

    // 使用请求模型创建用户
    public async Task<CreateOrUpdateUserResult?> CreateUserAsync()
    {
        var request = new CreateUserRequest
        {
            UserId = "test_user_id",
            Name = "张三",
            Email = "zhangsan@example.com",
            Mobile = "13800138000",
            DepartmentIds = new List<string> { "dept_001" }
        };

        var result = await _userApi.CreateUserAsync(request);
        return result?.Data;
    }
}

2. 使用分页请求模型

using Mud.Feishu.DataModels.Common;

public class DepartmentService
{
    private readonly IFeishuTenantV3Departments _deptApi;

    // 使用分页请求获取子部门列表
    public async Task GetSubDepartmentsAsync(string parentId)
    {
        var result = await _deptApi.GetDepartmentsByParentIdAsync(
            parentId,
            page_size: 50,
            page_token: null);

        // FeishuApiPageListResult<T> 包含分页信息和数据
        if (result?.Code == 0)
        {
            var departments = result.Data.Items;
            var nextPageToken = result.Data.PageToken;
        }
    }
}

3. 使用消息请求模型发送卡片消息

using Mud.Feishu.DataModels.Messages;

public class MessageService
{
    private readonly IFeishuTenantV1Message _messageApi;

    public async Task SendTextMessageAsync(string receiveId)
    {
        var request = new SendMessageRequest
        {
            ReceiveId = receiveId,
            MsgType = "text",
            Content = """{"text":"Hello from Mud.Feishu!"}"""
        };

        // receive_id_type 是 SendMessageAsync 的查询参数(默认 open_id),
        // 不是请求体属性;如需显式指定,通过方法参数传入
        var result = await _messageApi.SendMessageAsync(request, receive_id_type: "open_id");
    }
}

公共模型

Mud.Feishu.DataModels.Common 命名空间提供以下共享模型:

模型 说明
PageRequest 分页请求基类(PageSize、PageToken)
PageListResult 输出型分页包装(Page:ApiPageListResult 分页信息、Abnormals:异常信息列表)
FeishuApiPageListResult<T> API 分页列表响应结果(Code、Msg、Data.HasMore、Data.PageToken、Data.Items)
PageSearchRequest 分页搜索请求(继承 PageRequest,增加搜索关键词)
SearchRequest 通用搜索请求
FilterSearchRequest 带筛选条件的搜索请求
FieldFilter 字段筛选器
FieldCondition 字段条件
AvatarInfo 头像信息
CustomFieldValue 自定义字段值
PhoneValue 电话号码值
UrlValue URL 值
UserValue 用户值
EnumValue 枚举值
AbnormalInfo 异常信息

框架支持

  • .NET Standard 2.0(兼容 .NET Framework 4.6.1+、.NET Core 2.0+)
  • .NET 6.0
  • .NET 8.0
  • .NET 10.0

依赖项

包 说明
Mud.Feishu.Abstractions SDK 抽象层(提供 FeishuApiResult<T> 等基础模型)
Mud.HttpUtils.Generator HTTP 客户端代码生成器(编译时分析器,不产出运行时依赖)

相关项目

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


Mud.Feishu.DataModels - 强类型数据模型,让飞书 API 调用更安全!

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  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 was computed.  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 is compatible.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Mud.Feishu.DataModels:

Package Downloads
Mud.Feishu

飞书服务端 SDK 的 .NET 适配版,支持 .NET Standard 2.0、.NET 6/8/10 平台,net8.0+ 原生 AOT 兼容。提供类型安全的 API 封装,让开发者能够在 .NET 应用程序中便捷、高效地集成飞书服务端功能。

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0 80 9/28/2026
3.0.0-rc3 199 9/24/2026
3.0.0-rc2 162 9/18/2026