1 个不稳定版本

0.1.0 2021年1月24日

#12 in #odata

Apache-2.0

310KB
7K SLoC

OData 架构

将 OData 架构解析为 Rust 类型,目标是支持 Dynamics 365 OData 操作。

路线图

https://en.wikipedia.org/wiki/Open_Data_Protocol#Architecture

  • 反序列化 $metadata 文档
  • 构建一致的实体模型
    • 引用/包含
    • 注释/注释组(目前对于“完成”项目也没有构建注释)
    • 类型
    • 动作
    • 函数
    • 术语
    • 实体容器
      • 实体集
      • 动作导入
      • 函数导入
      • 单例
      • 扩展
    • 自定义/处理元数据不一致
      • 处理有资格的名称/目标路径解析错误的用户指定处理
  • 代码生成
    • 类型定义
    • 实体容器定义
    • 实体集定义
    • 动作
    • 函数
    • 生成类型(具有存根依赖项)的黑名单/白名单
  • 客户端功能
    • 检索
    • 过滤/查询
    • 创建/更新/删除
    • 调用动作和函数
    • ETag 支持
    • 检索/设置开放类型
    • 批量请求
  • 消耗 crate 绑定
    • Proc 模块
    • Proc 模块属性
    • build.rs 代码生成
  • 假设/试用

lib.rs:

利用由 odata_client_codegen crate 生成的 OData 实体模型代码的功能。

此处展示了从第三方 crate 导出的内容,以便使用生成代码的用户无需将这些 crate 添加到自己的 Cargo.toml 中。

依赖关系

~12–27MB
~452K SLoC