mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 23:05:16 +03:00
58 lines
2.9 KiB
Markdown
58 lines
2.9 KiB
Markdown
# HTTPService, WebService (Веб-сервисы)
|
|
|
|
Модуль обоих — `Ext/Module.bsl`, в нём реализуются обработчики.
|
|
|
|
## HTTPService (HTTP-сервис)
|
|
|
|
| Ключ | Умолчание | Значения |
|
|
|------|-----------|----------|
|
|
| `rootURL` | `= name` (в нижнем регистре) | корневой URL |
|
|
| `reuseSessions` | `DontUse` | `DontUse` / `AutoUse` |
|
|
| `sessionMaxAge` | `20` | время жизни сессии, сек |
|
|
| `urlTemplates` | `{}` | шаблоны URL (см. ниже) |
|
|
|
|
`urlTemplates` — объект `{ "ИмяШаблона": def }`, где `def`:
|
|
- строка — URL-путь без методов: `"/health"`;
|
|
- объект: `template` (путь с параметрами `{id}`, по умолчанию `/имяшаблона`), `methods` — `{ "ИмяМетода": "HTTPMethod" }`.
|
|
|
|
HTTP-методы: `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`, `CONNECT`, `TRACE`, `MERGE`.
|
|
Обработчик метода в модуле именуется `{ИмяШаблона}{ИмяМетода}`.
|
|
|
|
```json
|
|
{ "type": "HTTPService", "name": "API", "rootURL": "api",
|
|
"urlTemplates": {
|
|
"Users": { "template": "/v1/users/{id}", "methods": { "Get": "GET", "Create": "POST", "Delete": "DELETE" } },
|
|
"Health": "/health"
|
|
} }
|
|
```
|
|
|
|
## WebService (Веб-сервис, SOAP)
|
|
|
|
| Ключ | Умолчание | Значения |
|
|
|------|-----------|----------|
|
|
| `namespace` | пусто | URI пространства имён WSDL |
|
|
| `xdtoPackages` | пусто | XDTO-пакеты |
|
|
| `reuseSessions` | `DontUse` | `DontUse` / `AutoUse` |
|
|
| `sessionMaxAge` | `20` | время жизни сессии, сек |
|
|
| `operations` | `{}` | операции (см. ниже) |
|
|
|
|
`operations` — объект `{ "ИмяОперации": def }`, где `def`:
|
|
- строка — XDTO-тип возврата без параметров: `"xs:string"`;
|
|
- объект: `returnType` (по умолчанию `xs:string`), `nillable` (bool), `transactioned` (bool),
|
|
`handler` (имя процедуры, по умолчанию = имя операции), `parameters`.
|
|
|
|
`parameters` — объект `{ "ИмяПараметра": def }`, где `def`:
|
|
- строка — XDTO-тип (`direction` = `In`);
|
|
- объект: `type` (по умолчанию `xs:string`), `nillable` (bool, по умолчанию `true`), `direction` (`In` / `Out` / `InOut`).
|
|
|
|
XDTO-типы: `xs:string`, `xs:boolean`, `xs:int`, `xs:long`, `xs:decimal`, `xs:dateTime`, `xs:base64Binary`.
|
|
|
|
```json
|
|
{ "type": "WebService", "name": "DataExchange", "namespace": "http://www.1c.ru/DataExchange",
|
|
"operations": {
|
|
"TestConnection": { "returnType": "xs:boolean", "handler": "ПроверкаПодключения",
|
|
"parameters": { "ErrorMessage": { "type": "xs:string", "direction": "Out" } } },
|
|
"GetVersion": "xs:string"
|
|
} }
|
|
```
|