mirror of
https://gitee.com/pnoker/iot-dc3.git
synced 2026-11-01 18:51:53 +08:00
Replace the mixed-purpose ResponseEnum with a ResponseCode interface implemented by SuccessCode (OK/ADD/DELETE/UPDATE) and ErrorCode (NOT_FOUND/UNAUTHORIZED/ TOKEN_INVALID/IP_INVALID/FORBIDDEN/PASSWORD_*/VALIDATION/OUT_OF_RANGE/FAILURE), each carrying its HTTP status so the envelope body code and transport status no longer diverge. - Introduce abstract BusinessException carrying an ErrorCode; all 23 business exceptions extend it and bind a fixed code. ExceptionConfig reads the carried code to set both body code and HTTP status (404->R404, 401->R401, 422->R422). - Add GrpcRFactory (ok/fail/notFound) and remove the hand-written GrpcR builder boilerplate across 19 gRPC servers. - Drop the dead @EnumValue index and ofIndex/ofCode/ofName lookups; OUT_OF_RANGE is now carried by OutRangeException. - Update R factory methods to accept ResponseCode; migrate 90+ controllers, 11 gRPC facades, OpenAPI specs and README to the split enums. Also fix several pre-existing red tests surfaced by the full suite: - OAuthMcpRuntimeServiceImplTest: setUp set @Value fields refactored into OAuthProperties; inject the properties object instead. - DriverReadServiceImplTest: reset leaked ConnectionBackoff static state via a new clear() in @BeforeEach. - modbus-rtu/tcp: make the static modbusFactory non-final so tests can swap it. - ble: override no-arg health() to report OFFLINE before initialization. - PlcS7/facade-local tests: expect the thrown exception / use the single-arg overload matching production behaviour. - Remove a duplicate dc3-common-constant dependency in dc3-common-data/pom.xml.
DC3 Common API
Overview
dc3-common-api provides shared gRPC utility classes used across all services in the IoT DC3 platform. It contains
builder utilities for constructing gRPC request/response objects
from domain model entities.
Module Information
- Group ID: io.github.pnoker
- Artifact ID: dc3-common-api
- Version: 2026.5.22
Key Components
GrpcBuilderUtil— Utility class for building common gRPC DTOs from BO/DO entities (e.g., setting pagination, building result wrappers)
Dependencies
This module is included in any service that imports a dc3-api-* module. It bridges domain model objects with generated
protobuf classes.
Build Instructions
mvn -s ../../.mvn/settings.xml clean package
Related Modules
dc3-api-auth/dc3-api-data/dc3-api-driver/dc3-api-manager— gRPC API contracts that use these utilities
License
Copyright 2016-present the IoT DC3 original author or authors.
Licensed under the GNU Affero General Public License v3.0 (AGPL 3.0)