feat: add protobuf schema bridge contracts
This commit is contained in:
@@ -310,6 +310,15 @@
|
||||
}
|
||||
```
|
||||
|
||||
### Нормализация protobuf-структур
|
||||
|
||||
Для protobuf -> schema bridge дополнительно фиксируются такие правила:
|
||||
|
||||
- `repeated` поле преобразуется в `array`;
|
||||
- `enum` преобразуется в `type: enum` со списком `enum_values`;
|
||||
- `map<K, V>` преобразуется в `array` объектов `{ key, value }`;
|
||||
- `oneof` преобразуется в `type: oneof`, где каждый вариант представлен объектом с одним допустимым полем.
|
||||
|
||||
## 6. `MappingSet` и `MappingRule`
|
||||
|
||||
`MappingSet` - набор правил преобразования между внутренним MCP input/output и protocol-specific request/response model.
|
||||
|
||||
@@ -91,6 +91,8 @@ gRPC operation должна включать:
|
||||
- `.proto` и descriptor handling должны быть отделены от runtime-вызова;
|
||||
- protobuf discovery не должен жить внутри gRPC adapter;
|
||||
- `oneof`, `enum`, `repeated`, `map` и well-known types требуют отдельной нормализации;
|
||||
- `map` на слое нормализованной schema модели представляется как `array` объектов вида `{ key, value }`;
|
||||
- `oneof` на слое нормализованной schema модели представляется как `oneof` с вариантами-объектами, каждый из которых содержит одно допустимое поле;
|
||||
- схема сообщения должна быть представлена в UI как обычная форма полей, а не как сырой protobuf descriptor;
|
||||
- пользователь не должен видеть внутреннюю сложность protobuf-контракта больше, чем это нужно для настройки operation.
|
||||
- `JSONPath` используется как единый способ точечной адресации вложенных полей при настройке mapping поверх нормализованной JSON-модели.
|
||||
|
||||
Reference in New Issue
Block a user