feat(web): publish WS, HTTP services and OData by default

VRD now includes <ws>, <httpServices>, <standardOdata> 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 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-02-22 18:38:55 +03:00
parent 31debfb61b
commit 028c5292d7
5 changed files with 62 additions and 4 deletions
+11 -1
View File
@@ -112,10 +112,20 @@ if ($pubMatches.Count -eq 0) {
}
}
# Detect published services
$svcTags = @()
if (Test-Path $vrdPath) {
if ($vrdContent -match '<ws\s') { $svcTags += "WS" }
if ($vrdContent -match '<httpServices\s') { $svcTags += "HTTP" }
if ($vrdContent -match '<standardOdata\s') { $svcTags += "OData" }
}
$svcLabel = if ($svcTags.Count -gt 0) { " [" + ($svcTags -join " ") + "]" } else { "" }
$url = "http://localhost:$port/$appName"
Write-Host " $appName" -ForegroundColor White -NoNewline
Write-Host " $url" -ForegroundColor Gray -NoNewline
Write-Host " $ibInfo" -ForegroundColor DarkGray
Write-Host " $ibInfo" -ForegroundColor DarkGray -NoNewline
Write-Host $svcLabel -ForegroundColor DarkCyan
}
}
+7 -2
View File
@@ -75,9 +75,14 @@ powershell.exe -NoProfile -File .claude/skills/web-publish/scripts/web-publish.p
## После выполнения
1. Сообщи URL: `http://localhost:{Port}/{AppName}`
1. Сообщи URL-ы:
- Веб-клиент: `http://localhost:{Port}/{AppName}`
- OData: `http://localhost:{Port}/{AppName}/odata/standard.odata`
- HTTP-сервисы: `http://localhost:{Port}/{AppName}/hs/<RootUrl>/...`
- Web-сервисы: `http://localhost:{Port}/{AppName}/ws/<Имя>?wsdl`
2. Предложи открыть в браузере
3. Если база не зарегистрирована — предложи `/db-list add`
3. Если нужно протестировать сервис — помоги составить запрос
4. Если база не зарегистрирована — предложи `/db-list add`
## Примеры
@@ -230,6 +230,9 @@ $vrdContent = @"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/$AppName"
ib="$ibString">
<ws publishByDefault="true"/>
<httpServices publishByDefault="true"/>
<standardOdata enable="true"/>
</point>
"@
@@ -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/<RootUrl>/..." -ForegroundColor Cyan
Write-Host "Web-сервисы: http://localhost:$Port/$AppName/ws/<Имя>?wsdl" -ForegroundColor Cyan
+23
View File
@@ -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`:
+14
View File
@@ -43,6 +43,20 @@ File=&quot;C:\Bases\MyDB&quot;;Usr=&quot;Admin&quot;;Pwd=&quot;123&quot;;
> Кавычки внутри значения `ib` экранируются как `&quot;` (XML-сущность).
### Дочерние элементы
#### `<ws>`
Публикация SOAP web-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации.
URL: `/{AppName}/ws/{WebServiceName}?wsdl`
#### `<httpServices>`
Публикация HTTP-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации.
URL: `/{AppName}/hs/{RootUrl}/...`
#### `<standardOdata>`
Стандартный OData-интерфейс платформы. `enable="true"` открывает REST-доступ ко всем объектам.
URL: `/{AppName}/odata/standard.odata`
### Расположение
`{ApachePath}/publish/{AppName}/default.vrd`