行业包文档管理 行业包文档管理
首页
  • 系统快速上手
  • Git分支管理规则及协作流程说明
  • 系统账号密码说明
  • 架构说明

    • 系统整体架构说明
    • QMS-SPC系统架构说明
  • 后端基础类库说明
  • PC端前端所有组件说明 (opens new window)
  • 数据模型设计与说明
  • 后端新建微服务配置
  • 后端华为OpenApis开发
  • 事务集成
  • PC端前端从0开始

    • 本地部署运行
    • 创建前端工程
    • PC端组件库安装使用
    • 按钮权限基础包
  • 移动端前端从0开始

    • 移动端打包APK
    • 移动端公共组件
    • 移动端公共库
  • 前端公共

    • 前端整体架构
    • 前端注意事项
  • 公有云部署流程
  • iDME私有化部署流程
  • 许可授权流程
  • 各方案推荐配置清单
  • PC端前端二开流程
  • 移动端底座二开流程
  • 更新日志及规范规范
常见问题
Source (opens new window)
首页
  • 系统快速上手
  • Git分支管理规则及协作流程说明
  • 系统账号密码说明
  • 架构说明

    • 系统整体架构说明
    • QMS-SPC系统架构说明
  • 后端基础类库说明
  • PC端前端所有组件说明 (opens new window)
  • 数据模型设计与说明
  • 后端新建微服务配置
  • 后端华为OpenApis开发
  • 事务集成
  • PC端前端从0开始

    • 本地部署运行
    • 创建前端工程
    • PC端组件库安装使用
    • 按钮权限基础包
  • 移动端前端从0开始

    • 移动端打包APK
    • 移动端公共组件
    • 移动端公共库
  • 前端公共

    • 前端整体架构
    • 前端注意事项
  • 公有云部署流程
  • iDME私有化部署流程
  • 许可授权流程
  • 各方案推荐配置清单
  • PC端前端二开流程
  • 移动端底座二开流程
  • 更新日志及规范规范
常见问题
Source (opens new window)
  • 后端华为OpenApis开发

    • 1. 设计背景
      • 2. API定义说明
        • 2.1 参数说明
        • 3. API使用方式
    • 后端功能
    sie
    2025-06-10
    目录

    后端华为OpenApis开发

    # openapi模版说明

    # 1. 设计背景

    • 规范化不规范的华为接口。

    # 2. API定义说明

    # 2.1 参数说明

        public static HuaweiOpenApi<artListApiDTO, PartBatchViewApiDTO> partsBatchDetailWrapper = new HuaweiOpenApi<>(
                "/imes/mdmService/openapi/v1/parts/batch-detail/wrapper?limit={pageSize}&offset={pageNum}",
                "API接口说明", "POST", new TypeReference<OpenApiPageWrapperVO<PartBatchViewApiDTO>>(){},
                RequestPolicy.CAMEL_2_UNDERLINE_POLICY, ResponsePolicy.UNDERLINE_2_CAMEL_POLICY);
    
    1
    2
    3
    4

    说明:

    说明
    <PartListApiDTO, PartBatchViewApiDTO> PartListApiDTO 是接口的请求数据的对象格式; PartBatchViewApiDTO 是接口返回数据的非包装类的对象格式
    /imes/mdmService/openapi/v1/parts/batch-detail/wrapper?limit={pageSize}&offset={pageNum} 接口的URL, 如果需要使用url传参,使用{XXX}等方式的占位符传参。
    new TypeReference<OpenApiPageWrapperVO<PartBatchViewApiDTO>>(){} 接口返回数据 data 字段的对象定义。可能是列表,分页对象,普通对象,基础类型对象
    RequestPolicy.CAMEL_2_UNDERLINE_POLICY 请求数据策略: 需要把对象的字段从驼峰转成下划线
    ResponsePolicy.UNDERLINE_2_CAMEL_POLICY 返回数据策略: 需要把对象的字段从下划线转成驼峰

    泛型定义 与 TypeReference 补充说明:

    通用返回结构:

    {
    	"data": {
    		"count": 1,
    		"limit": 1,
    		"offset": 0,
    		"data": [{
    			"rdmExtensionType": "Part"
    		}]
    	},
    	"message": {
    		"msg": "success"
    	},
    	"status": 200
    }
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    返回格式 返回data格式TypeReference定义 泛型定义
    {"data": { "tenant_id": "hwstaff_p_apsimes", "created_by": "zhangyingfeng"}} new TypeReference<PartBatchViewApiDTO>(){} Api<PartListApiDTO, PartBatchViewApiDTO>
    {"data": [{ "rdmExtensionType": "Part",}]} new TypeReference<List<PartBatchViewApiDTO>>(){} Api<PartListApiDTO, PartBatchViewApiDTO>
    {"data": 999} new TypeReference<Integer>(){}
    {"data": null} new TypeReference<Void>(){} Api<PartListApiDTO, Void>
    {"data": { "count": 1, "limit": 1, "offset": 0, "data": [{ "rdmExtensionType": "Part" }]},"message": { "msg": "success"},"status": 200} new TypeReference<OpenApiPageWrapperVO<PartBatchViewApiDTO>>(){} Api<PartListApiDTO, PartBatchViewApiDTO>

    # 3. API使用方式

    分为两种类型:1. 提交类型接口; 2. 查询类型接口

    public interface IOpsTemplateApi<K,V> {
    // -----------------  提交类型接口 ------------- //
        /**
         * 提交类型接口(新增, 更新,删除等功能)
         *
         * @author 戴志强
         * {@code @date}  2025/5/8 14:10
         * @return 提交接口返回值
         */
        @Nullable
        V submit() throws DelegateException;
    
    
        /**
         *  提交类型接口(新增, 更新,删除等功能)
         *  提交数据并返回一个列表
         *
         * @author 戴志强
         * {@code @date}  2025/5/8 14:10
         * @return List列表
         */
        List<V> submitGetList() throws DelegateException;
        
        
        
        
    // -----------------  分页类型接口(带OpenApiPageWrapperVO) ------------- //
    
        /**
         * 分页查询接口
         *
         * @author 戴志强
         * {@code @date}  2025/5/8 14:10
         * @param pageVO 分页信息
         * @return 分页查询返回值
         */
        PageResultVO<V> page(PageApiVO pageVO) throws DelegateException;
    
        /**
         * 调用分页查询接口获取第一条数据
         *
         * @author 戴志强
         * {@code @date}  2025/5/8 14:10
         * @return 分页查询返回值
         */
        @Nullable
        V pageGetOne() throws DelegateException;
    
        /**
         * 多次调用分页查询接口获取所有数据
         *
         * @author 戴志强
         * {@code @date}  2025/5/8 14:10
         * @return 分页查询返回值
         */
        List<V> pageGetAll() throws DelegateException;
    
        /**
         * 分页查询接口
         *
         * @author 戴志强
         * {@code @date}  2025/5/8 14:10
         * @param pageVO 分页信息
         * @return List列表
         */
        List<V> pageList(@Nullable PageApiVO pageVO) throws DelegateException;
    
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68

    提交类型接口(新增,删除,更新等):

    // ---------- 接口定义 ------------ //
    public static HuaweiOpenApi<PartListApiDTO, Integer> partsBatchDetailInteger = new HuaweiOpenApi<>(
                "/imes/mdmService/openapi/v1/parts/batch-detail/integer?limit={pageSize}&offset={pageNum}",
                "API接口说明", "POST", new TypeReference<Integer>(){},
                RequestPolicy.CAMEL_2_UNDERLINE_POLICY, ResponsePolicy.UNDERLINE_2_CAMEL_POLICY);
                
                
    // ---------- 接口使用 ------------ //
            PartListApiDTO partListApiDTO = new PartListApiDTO();
            partListApiDTO.setPartIdList(Collections.singletonList("partId001"));
            
            Integer responseSubmit = PartOpenApis.partsBatchDetailInteger.ops(partListApiDTO).submit();
            
            System.out.println("Response Body responseSubmit: " + JSON.toJSONString(responseSubmit));
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    查询类型接口:

    // ---------- 接口定义 ------------ //
    public static HuaweiOpenApi<PartListApiDTO, PartBatchViewApiDTO> partsBatchDetailWrapper = new HuaweiOpenApi<>(
                "/imes/mdmService/openapi/v1/parts/batch-detail/wrapper?limit={pageSize}&offset={pageNum}",
                "API接口说明", "POST", new TypeReference<OpenApiPageWrapperVO<PartBatchViewApiDTO>>(){},
                RequestPolicy.CAMEL_2_UNDERLINE_POLICY, ResponsePolicy.UNDERLINE_2_CAMEL_POLICY);
    
    
    // ---------- 接口使用 ------------ //
            PartListApiDTO partListApiDTO = new PartListApiDTO();
            partListApiDTO.setPartIdList(Collections.singletonList("partId001"));
            PageApiVO pageApiVO = new PageApiVO();
            pageApiVO.setCurrent(1);
            pageApiVO.setPageSize(200);
            PageResultVO<PartBatchViewApiDTO> responsePage =       PartOpenApis.partsBatchDetailWrapper.ops(partListApiDTO).page(pageApiVO);
            // --------- pageGetOne接口测试 ---------- //
            PartBatchViewApiDTO responseGetOne = PartOpenApis.partsBatchDetailWrapper.ops(partListApiDTO).pageGetOne();
            // --------- pageGetAll接口测试 ---------- //
            List<PartBatchViewApiDTO> responseGetAll = PartOpenApis.partsBatchDetailWrapper.ops(partListApiDTO).pageGetAll();
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    在线编辑 (opens new window)
    最近更新
    01
    交付人员二开
    09-16
    02
    业务集成二开
    09-16
    03
    事务集成
    07-09
    更多文章>
    Theme by Vdoing | Copyright © 2023-2026 SIE
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式