Для настройки интеграции внешнего источника, поддерживающего любые вариации протокола передачи данных http, в числе: REST — необходимо настроить следующие параметры.
Settings
Поле настройки | Варианты значений | Назначение |
---|---|---|
Connector type | HTTP | Тип коннектора |
Scheme loaded | true, false | Индикатор загрузки схемы |
Scheme address | - | Адрес схемы |
Base address | - | Базовый адрес схемы |
Authorization type | None, Basic, Bearer, Custom Header, Open Auth* | Тип авторизации |
User name | *Только для Basic | Логин пользователя |
Password | *Только для Basic | Пароль учетной записи |
Token | *Только для Bearer | Токен авторизации |
Custom Header | *Только для Custom Header | |
Custom Value | *Только для Custom Header | |
Token endpoint | *Только для Open Auth | URL по которому будет отправлен запрос на авторизацию |
Client Id | *Только для Open Auth | ID клиента |
Secret | *Только для Open Auth | Секретный ключ клиента |
Scope | *Только для Open Auth | Список scopes требуемый для полученного при авторизации token |
Для Open Auth авторизации запрос нового token производится автоматически каждый раз когда требуется отработать запрос для вашего коннектора.
Мы используем IdentityServer4 ждя авторизации через OAuth. Информацию по этому продукту вы можете найти тут (на английском): https://identityserver4.readthedocs.io/en/latest/.
Пример HTTP схемы c GET и POST запросами
{
"info": {
"title": "API Documentation",
"version": "API: 1.0 / Service:1.0.0.0"
},
"paths": {
"/api/v1/dw/demo-data/persons": {
"get": {
"tags": [
"Persons"
],
"responses": {
"200": {
"content": {
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/demo-data:PersonInfo"
}
}
},
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/demo-data:PersonInfo"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/demo-data:PersonInfo"
}
}
}
},
"description": "Success"
}
}
},
"post": {
"tags": [
"Persons"
],
"responses": {
"200": {
"description": "Success"
}
},
"requestBody": {
"content": {
"text/json": {
"schema": {
"$ref": "#/components/schemas/demo-data:PersonCreate"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/demo-data:PersonCreate"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/demo-data:PersonCreate"
}
},
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/demo-data:PersonCreate"
}
}
}
}
}
},
"openapi": "3.0.1",
"components": {
"schemas": {
"demo-data:PersonInfo": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"birthDate": {
"type": "string",
"format": "date-time"
},
"firstName": {
"type": "string",
"nullable": true
},
"middleName": {
"type": "string",
"nullable": true
},
"secondName": {
"type": "string",
"nullable": true
},
"departmentId": {
"type": "integer",
"format": "int32",
"nullable": true
},
"noMiddleName": {
"type": "boolean"
}
},
"additionalProperties": false
},
"demo-data:PersonCreate": {
"type": "object",
"required": [
"birthDate",
"firstName",
"secondName"
],
"properties": {
"birthDate": {
"type": "string",
"format": "date-time"
},
"firstName": {
"type": "string",
"minLength": 3
},
"middleName": {
"type": "string",
"nullable": true
},
"secondName": {
"type": "string",
"minLength": 3
},
"noMiddleName": {
"type": "boolean"
}
},
"additionalProperties": false
},
Пример компоненты использующей REST API для того чтобы получить данные из внешней системы - сервисе Weather API - приведен ниже. Может быть импортирован и использован в версиях системы 0.5.24 и выше.