feat: add soap core domain model

This commit is contained in:
a.tolmachev
2026-04-06 21:27:19 +03:00
parent 45ea011b7f
commit 31fbdfdc02
19 changed files with 353 additions and 28 deletions
+32 -9
View File
@@ -430,6 +430,16 @@
- `kind`
- `wsdl_ref`
- `service_name`
- `port_name`
- `operation_name`
- `endpoint_override`
- `soap_version`
- `soap_action`
- `binding_style`
- `headers`
- `fault_contract`
- `metadata`
## 5. `ProtocolOptions`
@@ -444,15 +454,28 @@
- `heartbeat_interval_ms`
- `reconnect_max_attempts`
- `reconnect_backoff_ms`
- `service_name`
- `port_name`
- `operation_name`
- `endpoint_override`
- `soap_version`
- `soap_action`
- `header_config`
## 5. `Schema`
### 5.3. `SoapProtocolOptions`
- `use_tls`
- `validate_certificate`
- `ws_security_profile`
## 6. XML normalization model
Для SOAP/XSD-пайплайна `crank-schema` теперь фиксирует XML-origin metadata отдельными code-level types:
- `XmlNodeKind`
- `XmlQualifiedName`
- `XmlSchemaBinding`
Они описывают:
- является ли узел element / attribute / text;
- локальное имя и namespace;
- repeated / nillable semantics.
## 7. `Schema`
`Schema` - нормализованное описание входа или выхода.
@@ -465,7 +488,7 @@
- nullable-поля;
- `oneof` для protobuf.
## 6. Принцип совместимости
## 8. Принцип совместимости
Если UI требует сущность, которой нет в текущем backend, эта сущность должна быть сначала явно добавлена в эту модель данных, а уже потом в код и БД.
+19
View File
@@ -79,6 +79,25 @@ SOAP operation должна включать:
- `execution_config`
- `tool_description`
Code-level model:
- `crank_core::SoapTarget`
- `crank_core::SoapProtocolOptions`
- `crank_core::SoapVersion`
- `crank_core::SoapBindingStyle`
- `crank_core::SoapHeaderConfig`
- `crank_core::SoapFaultContract`
- `crank_core::SoapOperationMetadata`
- `crank_schema::XmlNodeKind`
- `crank_schema::XmlQualifiedName`
- `crank_schema::XmlSchemaBinding`
Execution constraints:
- `Protocol::Soap` поддерживает только `unary` и `async_job`;
- `window` и `session` для SOAP не поддерживаются;
- runtime до появления SOAP adapter обязан отклонять выполнение как `unsupported protocol`.
## 7. Как оператор настраивает SOAP operation
1. Загружает WSDL.