开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
  • 开发者指南
    • 协议插件开发
    • 扩展插件开发
    • 报警插件开发
    • 应用插件开发
      • 前端Web界面开发
      • 后端接口开发
        • 模板引擎
        • 基础开发
          • 定义模型
          • 上下文定义
          • 仓储定义
          • 仓储实现
          • 注册仓储和上下文
          • 控制器使用
          • 测试验证
        • 内置特性
      • 插件打包和发布
    • Web可视化开发
    • 3D可视化开发
    • 桌面可视化开发
    • 小程序开发
  • 项目实战
  • 附录

基础开发

# 后端插件开发

# 定义模型

在数据库中创建表结构,然后在Data目录下创建实体模型User,继承自Entity泛型,底层约定表主键名称为id,其类型为Entity泛型类型,比如如下为string

1、若id需指定生成,则显式定义实体构造函数

2、若id需自动生成,id将以Guid生成,所以指定泛型类型为Guid

# 上下文定义

EF Core上下文集成自底层IoTCenterDbContext<>泛型类,然后将操作实体模型存放到此类中

# 仓储定义

响应数据结构必须通过底层暴露的OperateResult包裹并返回,将操作实体进行DTO映射转换,DTO模型存放在Models目录

# 仓储实现

具体仓储实现继承自底层暴露的EfCoreRepository泛型类,第一个参数为上下文,第二个参数为指定实体模型、第三个参数为实体模型主键类型

添加、删除、查询、更新常规基本操作,比如如下添加,AddAsync方法在基类中已有实现

# 注册仓储和上下文

在Startup类文件中注册仓储以及EntityFramework Core上下文

# 控制器使用

IoT平台默认使用Cookie认证,所以必须显式定义认证方案,否则当访问接口时会抛异常,通过构造函数使用注册的仓储接口,另外请求方式建议遵循RESTful风格

# 测试验证

  1. 在\IoTCenter\IoTCenterWeb\publish\plugins目录下创建以项目名称命名的文件夹,并将项目生成的dll和json文件复制到文件夹中。然后启动WebAPi服务并访问Web

  2. 访问健康接口api/user/health验证插件是否能正常加载

  3. 若需调试接口,将其附加到WebAPi服务进程即可

  4. 依托Postman模拟测试接口

    将默认Cookie认证方案注释,将整个控制器访问通过匿名特性修饰,否则通过Postman访问将出现401

    比如我们测试添加用户接口

上次更新: 3/23/2023, 3:15:49 PM

← 模板引擎 内置特性→

目录
定义模型
上下文定义
仓储定义
仓储实现
注册仓储和上下文
控制器使用
测试验证
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式