Для настройки интеграции внешнего источника, поддерживающего любые вариации протокола передачи данных 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 для внешних интеграций

Пример компоненты использующей REST API для того чтобы получить данные из внешней системы - сервисе Weather API - приведен ниже. Может быть импортирован и использован в версиях системы 0.5.24 и выше.

Weather API Example for Import