From 028c5292d74ada13861392b1e8c8f69e05222eee Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 22 Feb 2026 18:38:55 +0300 Subject: [PATCH] feat(web): publish WS, HTTP services and OData by default VRD now includes , , elements so all service types are available out of the box. web-info shows [WS HTTP OData] tags per publication. Docs updated with service URL patterns and scenarios. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/web-info/scripts/web-info.ps1 | 12 +++++++++- .claude/skills/web-publish/SKILL.md | 9 ++++++-- .../web-publish/scripts/web-publish.ps1 | 8 ++++++- docs/web-guide.md | 23 +++++++++++++++++++ docs/web-spec.md | 14 +++++++++++ 5 files changed, 62 insertions(+), 4 deletions(-) diff --git a/.claude/skills/web-info/scripts/web-info.ps1 b/.claude/skills/web-info/scripts/web-info.ps1 index 615fcd43..02ec4b8a 100644 --- a/.claude/skills/web-info/scripts/web-info.ps1 +++ b/.claude/skills/web-info/scripts/web-info.ps1 @@ -112,10 +112,20 @@ if ($pubMatches.Count -eq 0) { } } + # Detect published services + $svcTags = @() + if (Test-Path $vrdPath) { + if ($vrdContent -match '/...` + - Web-сервисы: `http://localhost:{Port}/{AppName}/ws/<Имя>?wsdl` 2. Предложи открыть в браузере -3. Если база не зарегистрирована — предложи `/db-list add` +3. Если нужно протестировать сервис — помоги составить запрос +4. Если база не зарегистрирована — предложи `/db-list add` ## Примеры diff --git a/.claude/skills/web-publish/scripts/web-publish.ps1 b/.claude/skills/web-publish/scripts/web-publish.ps1 index b4cd6143..40ad5e45 100644 --- a/.claude/skills/web-publish/scripts/web-publish.ps1 +++ b/.claude/skills/web-publish/scripts/web-publish.ps1 @@ -230,6 +230,9 @@ $vrdContent = @" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" base="/$AppName" ib="$ibString"> + + + "@ @@ -364,4 +367,7 @@ if ($httpdCheck) { # --- Result --- Write-Host "" Write-Host "=== Публикация готова ===" -ForegroundColor Green -Write-Host "URL: http://localhost:$Port/$AppName" -ForegroundColor Cyan +Write-Host "URL: http://localhost:$Port/$AppName" -ForegroundColor Cyan +Write-Host "OData: http://localhost:$Port/$AppName/odata/standard.odata" -ForegroundColor Cyan +Write-Host "HTTP-сервисы: http://localhost:$Port/$AppName/hs//..." -ForegroundColor Cyan +Write-Host "Web-сервисы: http://localhost:$Port/$AppName/ws/<Имя>?wsdl" -ForegroundColor Cyan diff --git a/docs/web-guide.md b/docs/web-guide.md index 168acb90..49d2e83d 100644 --- a/docs/web-guide.md +++ b/docs/web-guide.md @@ -122,6 +122,29 @@ Claude вызовет `/web-unpublish bpdemo` → удалит блок из htt Claude вызовет `/web-unpublish --all` → удалит все блоки из httpd.conf → удалит все каталоги → остановит Apache. +## Работа с сервисами + +### Протестировать HTTP-сервис +``` +> Вызови HTTP-сервис ОбменДанными метод ПолучитьСтатус +``` + +Claude составит curl/Invoke-WebRequest к `http://localhost:8081/appname/hs/exchange/status` + +### Проверить OData +``` +> Покажи список справочников через OData +``` + +Claude вызовет `http://localhost:8081/appname/odata/standard.odata/$metadata` + +### Получить WSDL web-сервиса +``` +> Покажи WSDL сервиса ОбменСВнешнимиСистемами +``` + +Claude откроет `http://localhost:8081/appname/ws/ExchangeWithExternalSystems?wsdl` + ## Ручная установка Apache Если автоматическая загрузка невозможна (прокси, firewall), используйте флаг `--manual`: diff --git a/docs/web-spec.md b/docs/web-spec.md index edd6456f..d8c46635 100644 --- a/docs/web-spec.md +++ b/docs/web-spec.md @@ -43,6 +43,20 @@ File="C:\Bases\MyDB";Usr="Admin";Pwd="123"; > Кавычки внутри значения `ib` экранируются как `"` (XML-сущность). +### Дочерние элементы + +#### `` +Публикация SOAP web-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации. +URL: `/{AppName}/ws/{WebServiceName}?wsdl` + +#### `` +Публикация HTTP-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации. +URL: `/{AppName}/hs/{RootUrl}/...` + +#### `` +Стандартный OData-интерфейс платформы. `enable="true"` открывает REST-доступ ко всем объектам. +URL: `/{AppName}/odata/standard.odata` + ### Расположение `{ApachePath}/publish/{AppName}/default.vrd`