This commit is contained in:
@ -1,19 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<title>Use API methods with wildcards in modules</title>
|
||||
<title>Настройка метода API с гибким адресом в модуле</title>
|
||||
<meta name="generator" content="Help+Manual" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="When calling an API method in a module, you can send parameter values to its script and process them. For example, in the method URL, you can specify the identifier of the file..." />
|
||||
<meta name="description" content="При вызове метода API в модуле можно передавать в его скрипт значения параметров и обрабатывать их. Например, указывать в URL метода идентификатор файла, который нужно..." />
|
||||
<meta name="picture" content="" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
|
||||
<meta property="og:url" content="https://brix365.com/en/help" />
|
||||
<meta property="og:image" content="" />
|
||||
<meta property="og:title" content="Cправка по Low-code платформе ELMA365" />
|
||||
<meta property="og:url" content="https://elma365.com/ru/help" />
|
||||
<meta property="og:image" content="" />
|
||||
<meta property="og:site_name" content="ELMA365" />
|
||||
<link rel="icon" href="favicon.png" type="image/png" />
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
@ -23,6 +24,7 @@
|
||||
<link rel="stylesheet" href="./article.css" />
|
||||
<link rel="stylesheet" href="./glossary.css" />
|
||||
<link rel="stylesheet" href="./theme.css" />
|
||||
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="helpman_settings.js"></script>
|
||||
<script type="text/javascript" src="helpman_topicinit.js"></script>
|
||||
@ -34,16 +36,16 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-M6ETBEC1R9"></script><script>window.dataLayer=window.dataLayer || []; function gtag(){dataLayer.push(arguments);}gtag('js', new Date()); gtag('config', 'G-M6ETBEC1R9');</script>
|
||||
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
|
||||
|
||||
<header class="header elma-365">
|
||||
<div class="container">
|
||||
<a class="header__logo" href="https://brix365.com/en/help">
|
||||
<img src="./logo-en.svg" alt="header logo">
|
||||
<a class="header__logo" href="https://elma365.com/ru/help">
|
||||
<img src="./logo.svg" alt="header logo">
|
||||
</a>
|
||||
<!-- <div class="hero__search-form" id="search-panel">
|
||||
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
|
||||
<form class="search-form" onsubmit="ym(83179930,'reachGoal','poisk')">
|
||||
<label class="search-form__label">
|
||||
<span id="reset-search" class="search__icon"></span>
|
||||
<input class="search-form__input" type="text">
|
||||
@ -63,7 +65,7 @@
|
||||
</div>
|
||||
<div class="header__navi">
|
||||
|
||||
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
|
||||
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a class="project-link" href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li><li><a class="project-link" href="https://elma365.com/ru/help/business_solutions/-elma365-store.html">Бизнес-решения</a></li></ul></span></li><li><a href="https://api.elma365.com/ru/"target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/"target="_blank">SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/" target="_blank">Академия</a></li><li><a href="https://elma365.com/ru/" target="_blank">Сайт ELMA365</a></li></ul>
|
||||
|
||||
|
||||
</div>
|
||||
@ -78,8 +80,8 @@
|
||||
|
||||
<aside class="sidebar" id="sidebar">
|
||||
<div class="sidebar__header">
|
||||
<a class="header__logo" href="https://brix365.com/en/help">
|
||||
<img src="./logo-light-en.svg">
|
||||
<a class="header__logo" href="https://elma365.com/ru/help">
|
||||
<img src="./logo-light.svg">
|
||||
</a>
|
||||
<span class="sidebar__close elma-365-close" id="close"></span>
|
||||
</div>
|
||||
@ -92,15 +94,15 @@
|
||||
<div class="article-inner">
|
||||
<div class="content">
|
||||
<header class="article__header">
|
||||
<div class="article__bread" style="display:flex; gap:10px;">
|
||||
<div class="article__bread" style="display:flex; gap:10px;">
|
||||
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
|
||||
|
||||
<div class="topic__breadcrumbs">
|
||||
<p><a href="360024498352.html">Modules</a> > <a href="extentions.html">Custom modules</a> > <a href="extention-api.html">API methods in modules</a> / Use API methods with wildcards in modules</p>
|
||||
<p><a href="360024498352.html">Модули расширения системы</a> > <a href="extentions.html">Пользовательские модули</a> > <a href="extention-api.html">Методы API в модулях</a> / Настройка метода API с гибким адресом в модуле</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Use API methods with wildcards in modules</span></h1>
|
||||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Настройка метода API с гибким адресом в модуле</span></h1>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
@ -109,75 +111,76 @@
|
||||
<a href="#h1-article" class="scroll-top"></a>
|
||||
</div>
|
||||
<!-- Placeholder for topic body. -->
|
||||
<p class="p_Normal">When calling an <a href="extention-api.html" class="topiclink">API method in a module</a>, you can send parameter values to its script and process them. For example, in the method URL, you can specify the identifier of the file to be retrieved or define further actions depending on the sent value.</p>
|
||||
<p class="p_Normal">When calling a method this way, you can customize integration with third-party services that use complex request routing with parameters sent directly to the URL.</p>
|
||||
<p class="p_Normal">To send values when calling an API method:</p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">При вызове </span><span style="font-size: 15px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif; color: #0563c1;"><a href="https://elma365.com/ru/help/platform/extention-api.html" target="_blank" class="weblink">метода API </a><a href="extention-api.html" class="topiclink">в модуле</a></span><span style="font-size: 15px; font-family: Inter;"> можно передавать в его скрипт значения параметров и обрабатывать их. Например, указывать в URL метода идентификатор файла, который нужно получить, или определять дальнейшие действия в зависимости от переданного значения.</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Этот способ вызова позволяет настроить интеграцию со сторонними сервисами, в которых используется сложная маршрутизация запросов с передачей параметров напрямую в URL. </span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Чтобы передавать значения при обращении к методу API:</span></p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li class="p_Normal">Set a special address for it.</li><li class="p_Normal">Configure the processing of values in the method script.</li></ul>
|
||||
<p class="p_Normal">Let's see how to do it.</p>
|
||||
<h2 class="p_Heading2"><a id="create-method" class="hmanchor"></a><span class="f_Heading2">Create a method with a wildcard</span></h2>
|
||||
<p class="p_Normal">Let's assume you create an API method to get the names and emails of employees. When you call it, the ID of the user you want to request information about is sent to it. If no ID is sent, the response includes the data of all users.</p>
|
||||
<p class="p_Normal">To configure such a method:</p>
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">установите для него особый адрес;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">настройте обработку значений в скрипте метода.</span></li></ul>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Рассмотрим, как это сделать.</span></p>
|
||||
<h2 class="p_Heading2"><a id="create-method" class="hmanchor"></a><span class="f_Heading2">Создание метода с гибким адресом</span></h2>
|
||||
<p style="line-height: 1.28; page-break-after: avoid; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Допустим, вы создаёте метод API для получения имени и электронной почты сотрудников. При вызове в него передаётся ID пользователя, о котором нужно запросить сведения. Если ID не передан, в ответе отправляются данные всех пользователей.</span></p>
|
||||
<p style="line-height: 1.28; page-break-after: avoid; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Чтобы настроить такой метод:</span></p>
|
||||
<ol style="list-style-type:upper-roman">
|
||||
<li value="1" class="p_Normal">In the custom module settings on the <span style="font-weight: bold;">API Methods</span> tab, go to editing methods.</li><li value="2" class="p_Normal">Click <span style="font-weight: bold;">+ Add</span>.</li><li value="3" class="p_Normal">In the window that opens, enter a name and select the <code><b>GET</b></code> method because the call will retrieve data.</li><li value="4" class="p_Normal">In the <span style="font-weight: bold;">Address</span><span style="font-weight: bold; color: #ff0000;">*</span> field, enter the path to the method and add the character combination <code><b>/*</b></code> at the end.<br />
|
||||
<img alt="api-method-with-wildcard-1" width="754" height="426" style="margin:0;width:754px;height:426px;border:none" src="api-method-with-wildcard-1.png"/></li><li value="5" class="p_Normal">In the <span style="font-weight: bold;">Function</span><span style="font-weight: bold; color: #ff0000;">*</span> field, specify the name of the function containing the method script and click <span style="font-weight: bold;">Save</span>.</li><li value="6" class="p_Normal">Save the API method. Now, the part of the address that will be in the request instead of the <code><b>*</b></code> symbol is not taken into account in routing. You can send parameters in it.</li><li value="7" class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;">Go to the <span style="font-weight: bold;">Scripts</span> tab. Determine what actions will be performed in the method depending on the sent value. To do this, get the value from the <code><b>fragment</b></code> property of the <code><b>HttpApiRequest</b></code> type, which the API method accepts when called:</li></ol>
|
||||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">async function users(req: HttpApiRequest): Promise<HttpResponse | void> {</span><br />
|
||||
<span class="f_CodeExample"> const resp = new HttpResponse();</span><br />
|
||||
<li value="1" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">В настройках пользовательского модуля на вкладке </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Методы API</span><span style="font-size: 15px; font-family: Inter;"> перейдите к редактированию методов.</span></li><li value="2" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">Нажмите </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">+ Добавить</span><span style="font-size: 15px; font-family: Inter;">.</span></li><li value="3" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">В открывшемся окне введите название и выберите метод </span><code><b>GET</b></code><span style="font-size: 15px; font-family: Inter;">, так как при вызове будет происходить получение данных.</span></li><li value="4" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">В поле </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Адрес</span><span style="font-size: 15px; font-family: Inter; font-weight: bold; color: #ff0000;">*</span><span style="font-size: 15px; font-family: Inter;"> введите путь к методу и добавьте в конце сочетание символов </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">/*</span><span style="font-size: 15px; font-family: Inter;">.</span></li></ol>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 34px;"><img alt="api-method-with-wildcard-1" width="780" height="373" style="margin:0;width:780px;height:373px;border:none" src="api-method-with-wildcard-1.png"/></p>
|
||||
<ol style="list-style-type:upper-roman">
|
||||
<li value="5" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">В поле </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Функция</span><span style="font-size: 15px; font-family: Inter; font-weight: bold; color: #ff0000;">*</span><span style="font-size: 15px; font-family: Inter;"> задайте название функции, содержащей скрипт метода, и нажмите </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Сохранить</span><span style="font-size: 15px; font-family: Inter;">.</span></li><li value="6" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">Сохраните метод API. Теперь часть адреса, которая будет стоять в запросе вместо символа </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">*</span><span style="font-size: 15px; font-family: Inter;">, не учитывается при маршрутизации. В ней можно передавать параметры.</span></li><li value="7" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">Перейдите на вкладку </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Скрипты</span><span style="font-size: 15px; font-family: Inter;">. Определите, какие действия будут выполняться в методе в зависимости от переданного значения. Для этого получите значение из свойства </span><code><b>fragment</b></code><span style="font-size: 15px; font-family: Inter;"> типа </span><code><b>HttpApiRequest</b></code><span style="font-size: 15px; font-family: Inter;">, который метод API принимает при вызове:</span></li></ol>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">async function users(req: HttpApiRequest): Promise<HttpResponse | void> {</span><br />
|
||||
<span class="f_CodeExample"> const resp = new HttpResponse();</span><br />
|
||||
<span class="f_CodeExample"> </span><br />
|
||||
<span class="f_CodeExample"> // Write the User ID received when calling a method in the `userId`variable</span><br />
|
||||
<span class="f_CodeExample"> const userId = req.fragment;</span><br />
|
||||
<span class="f_CodeExample"> // If the ID is not empty, search for a specific user</span><br />
|
||||
<span class="f_CodeExample"> if (userId) {</span><br />
|
||||
<span class="f_CodeExample"> const user = await System.users.search().where((f) => f.__id.eq(userId)).first();</span><br />
|
||||
<span class="f_CodeExample"> // If the user is found, send their data in the response</span><br />
|
||||
<span class="f_CodeExample"> if (user) {</span><br />
|
||||
<span class="f_CodeExample"> resp.status(HttpStatusCode.OK);</span><br />
|
||||
<span class="f_CodeExample"> resp.json({</span><br />
|
||||
<span class="f_CodeExample"> id: user.data.__id,</span><br />
|
||||
<span class="f_CodeExample"> name: user.data.__name,</span><br />
|
||||
<span class="f_CodeExample"> email: user.data.email,</span><br />
|
||||
<span class="f_CodeExample"> });</span><br />
|
||||
<span class="f_CodeExample"> // If the user is not found, send an error message in the response</span><br />
|
||||
<span class="f_CodeExample"> } else {</span><br />
|
||||
<span class="f_CodeExample"> resp.status(HttpStatusCode.NOT_FOUND);</span><br />
|
||||
<span class="f_CodeExample"> resp.content(`user with id ${ userId } not found`);</span><br />
|
||||
<span class="f_CodeExample"> }</span><br />
|
||||
<span class="f_CodeExample"> return resp;</span><br />
|
||||
<span class="f_CodeExample"> }</span><br />
|
||||
<span class="f_CodeExample"> // Запись ID пользователя, полученного при вызове метода, в переменную `userId`</span><br />
|
||||
<span class="f_CodeExample"> const userId = req.fragment;</span><br />
|
||||
<span class="f_CodeExample"> // Если ID не пустой, выполняется поиск определённого пользователя</span><br />
|
||||
<span class="f_CodeExample"> if (userId) {</span><br />
|
||||
<span class="f_CodeExample"> const user = await System.users.search().where((f) => f.__id.eq(userId)).first();</span><br />
|
||||
<span class="f_CodeExample"> // Если пользователь найден, в ответе передаются его данные</span><br />
|
||||
<span class="f_CodeExample"> if (user) {</span><br />
|
||||
<span class="f_CodeExample"> resp.status(HttpStatusCode.OK);</span><br />
|
||||
<span class="f_CodeExample"> resp.json({</span><br />
|
||||
<span class="f_CodeExample"> id: user.data.__id,</span><br />
|
||||
<span class="f_CodeExample"> name: user.data.__name,</span><br />
|
||||
<span class="f_CodeExample"> email: user.data.email,</span><br />
|
||||
<span class="f_CodeExample"> });</span><br />
|
||||
<span class="f_CodeExample"> // Если пользователь не найден, в ответе отправляется сообщение об ошибке</span><br />
|
||||
<span class="f_CodeExample"> } else {</span><br />
|
||||
<span class="f_CodeExample"> resp.status(HttpStatusCode.NOT_FOUND);</span><br />
|
||||
<span class="f_CodeExample"> resp.content(`user with id ${ userId } not found`);</span><br />
|
||||
<span class="f_CodeExample"> }</span><br />
|
||||
<span class="f_CodeExample"> return resp;</span><br />
|
||||
<span class="f_CodeExample"> }</span><br />
|
||||
<span class="f_CodeExample"> </span><br />
|
||||
<span class="f_CodeExample"> // If the ID is not sent in the request, send data of all users in the response</span><br />
|
||||
<span class="f_CodeExample"> const users = await System.users.search().all();</span><br />
|
||||
<span class="f_CodeExample"> resp.status(HttpStatusCode.OK);</span><br />
|
||||
<span class="f_CodeExample"> resp.json(users.map((user) => ({</span><br />
|
||||
<span class="f_CodeExample"> id: user.data.__id,</span><br />
|
||||
<span class="f_CodeExample"> name: user.data.__name,</span><br />
|
||||
<span class="f_CodeExample"> email: user.data.email,</span><br />
|
||||
<span class="f_CodeExample"> })));</span><br />
|
||||
<span class="f_CodeExample"> // Если в запросе не передан ID, в ответ включаются данные всех пользователей</span><br />
|
||||
<span class="f_CodeExample"> const users = await System.users.search().all();</span><br />
|
||||
<span class="f_CodeExample"> resp.status(HttpStatusCode.OK);</span><br />
|
||||
<span class="f_CodeExample"> resp.json(users.map((user) => ({</span><br />
|
||||
<span class="f_CodeExample"> id: user.data.__id,</span><br />
|
||||
<span class="f_CodeExample"> name: user.data.__name,</span><br />
|
||||
<span class="f_CodeExample"> email: user.data.email,</span><br />
|
||||
<span class="f_CodeExample"> })));</span><br />
|
||||
<span class="f_CodeExample"> </span><br />
|
||||
<span class="f_CodeExample">return resp;</span><br />
|
||||
<span class="f_CodeExample"> return resp;</span><br />
|
||||
<span class="f_CodeExample">}</span></p>
|
||||
<p class="p_Normal">Read more about how to write scripts for API methods in the <a href="extention-api.html#access-to-global-constants" class="topiclink">API methods in modules</a> article.</p>
|
||||
<ol style="list-style-type:upper-roman">
|
||||
<li value="8" class="p_Normal">Save and publish the method.</li></ol>
|
||||
<p class="p_Normal">Now, you can call the configured API method from external systems or in BRIX scripts.</p>
|
||||
<h2 class="p_Heading2"><span class="f_Heading2">Call a method with a wildcard from an external service</span></h2>
|
||||
<p class="p_Normal">To call API methods from external services, use the <code><b>fetch()</b></code> method. Send the full URL of the API method to it. To specify parameter values in the request, add them at the end of the URL using the <code><b>/</b></code> symbol.</p>
|
||||
<p class="p_Normal">For example, when calling the <a href="api-method-with-wildcard.html#create-method" class="topiclink">users/* method</a>, the user ID is sent to get user data:</p>
|
||||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">let response = await fetch('https://abcd1234.brix.eu/api/extensions/f1e6cf15-7c65-4be5-8443-021a280dcd80/script/users/fb894dcb-9fe0-4783-b7a9-8a76099446b0', {</span><br />
|
||||
<span class="f_CodeExample"> method: "GET",</span><br />
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Подробнее о написании скриптов для методов API читайте в статье </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="extention-api.html#access-to-global-constants" class="topiclink">«Методы API в модулях»</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<ol style="list-style-type:upper-roman" start="8">
|
||||
<li value="8" style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter;">Сохраните и опубликуйте метод.</span></li></ol>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Теперь вы можете вызывать настроенный метод API из сторонних систем или из скриптов ELMA365.</span></p>
|
||||
<h2 class="p_Heading2"><a id="call-from-external-service" class="hmanchor"></a><span class="f_Heading2">Вызов метода с гибким адресом из стороннего сервиса</span></h2>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Обращение к методам API из внешних сервисов выполняется с помощью метода </span><code><b>fetch()</b></code><span style="font-size: 15px; font-family: Inter;">. В него передаётся полный URL метода API. Чтобы указать в запросе значения параметров, добавьте их в конце адреса через символ </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">/</span><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Например, при вызове </span><span style="font-size: 15px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif; color: #0563c1;"><a href="api-method-with-wildcard.html#create-method" class="topiclink">метода users/*</a></span><span style="font-size: 15px; font-family: Inter;"> передаётся ID пользователя для получения его данных: </span></p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">let response = await fetch('https://abcd1234.elma365.ru/api/extensions/f1e6cf15-7c65-4be5-8443-021a280dcd80/script/users/fb894dcb-9fe0-4783-b7a9-8a76099446b0', {</span><br />
|
||||
<span class="f_CodeExample"> method: "GET",</span><br />
|
||||
<span class="f_CodeExample">});</span></p>
|
||||
<h2 class="p_Heading2"><span class="f_Heading2">Call a method with a wildcard in a BRIX script</span></h2>
|
||||
<p class="p_Normal">To call API methods in scripts, use the <code><b>call()</b></code> method. To send parameter values, use the <code><b>withFragment()</b></code> function.</p>
|
||||
<p class="p_Normal">For example, when calling the <a href="api-method-with-wildcard.html#create-method" class="topiclink">users/* method</a>, you can specify the user ID to get their data:</p>
|
||||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">await Namespace.api.users</span><br />
|
||||
<span class="f_CodeExample"> .withFragment('fb894dcb-9fe0-4783-b7a9-8a76099446b0')</span><br />
|
||||
<span class="f_CodeExample"> .call({</span><br />
|
||||
<span class="f_CodeExample"> method: 'GET',</span><br />
|
||||
<span class="f_CodeExample"> });</span></p>
|
||||
<p class="p_Normal">If you do not send any parameters, you can call the method without the <code><b>withFragment()</b></code> function.</p>
|
||||
<p class="p_Normal">For example, when calling the <code><b>users/*</b></code> method in such a way, you get data about all employees:</p>
|
||||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">await Namespace.api.users.call({</span><br />
|
||||
<span class="f_CodeExample"> method: 'GET',</span><br />
|
||||
<h2 class="p_Heading2"><a id="call-from-script" class="hmanchor"></a><span class="f_Heading2">Вызов метода с гибким адресом из скрипта в ELMA365</span></h2>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для вызова методов API через скрипт применяется метод </span><code><b>call()</b></code><span style="font-size: 15px; font-family: Inter;">.Чтобы передать значения параметров, используйте функцию </span><code><b>withFragment()</b></code><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Например, при вызове </span><span style="font-size: 15px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif; color: #0563c1;"><a href="api-method-with-wildcard.html#create-method" class="topiclink">метода users/*</a></span><span style="font-size: 15px; font-family: Inter;"> можно указать ID пользователя, чтобы запросить информацию о нём:</span></p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">await Namespace.api.users</span><br />
|
||||
<span class="f_CodeExample"> .withFragment('fb894dcb-9fe0-4783-b7a9-8a76099446b0')</span><br />
|
||||
<span class="f_CodeExample"> .call({</span><br />
|
||||
<span class="f_CodeExample"> method: 'GET',</span><br />
|
||||
<span class="f_CodeExample"> });</span></p>
|
||||
<p style="line-height: 1.28; margin: 24px 0 8px 0;"><span style="font-size: 15px; font-family: Inter;">Если передавать параметры не требуется, метод можно вызвать без функции </span><code><b>withFragment()</b></code><span style="font-size: 15px; font-family: Inter;">. Например, при обращении к методу </span><code><b>users/*</b></code><span style="font-size: 15px; font-family: Inter;"> в этом случае вы получите сведения обо всех сотрудниках:</span></p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">await Namespace.api.users.call({</span><br />
|
||||
<span class="f_CodeExample"> method: 'GET',</span><br />
|
||||
<span class="f_CodeExample">});</span></p>
|
||||
|
||||
<div class="bottom-nav">
|
||||
@ -195,7 +198,7 @@
|
||||
|
||||
</div>
|
||||
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
|
||||
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
|
||||
<div class="feedback-wrap"><div class="feedback" id="feedback"><span><b>Была ли статья полезной?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx">Спасибо за ваш отзыв!</div><div id="feedback-success-popup"><div class="wrap"><button type="button" class="feedback-popup-close">×</button><svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_212_2187)"><path d="M22 0.6875C10.2294 0.6875 0.6875 10.2294 0.6875 22C0.6875 33.7706 10.2294 43.3125 22 43.3125C33.7706 43.3125 43.3125 33.7706 43.3125 22C43.3125 10.2294 33.7706 0.6875 22 0.6875ZM22 40.5625C11.8023 40.5625 3.4375 32.3078 3.4375 22C3.4375 11.8024 11.6922 3.4375 22 3.4375C32.1977 3.4375 40.5625 11.6922 40.5625 22C40.5625 32.1976 32.3078 40.5625 22 40.5625ZM34.1713 16.933L18.6613 32.3186C18.257 32.7197 17.604 32.7171 17.203 32.3128L9.82283 24.873C9.42176 24.4686 9.42434 23.8157 9.82867 23.4146L10.5609 22.6884C10.9652 22.2873 11.6181 22.2899 12.0192 22.6942L17.9468 28.6697L31.9926 14.7366C32.3969 14.3356 33.0498 14.3382 33.4509 14.7425L34.1772 15.4747C34.5783 15.879 34.5757 16.532 34.1713 16.933Z" fill="#27AE60"></path></g><defs><clipPath id="clip0_212_2187"><rect width="44" height="44" fill="white"></rect></clipPath></defs></svg><p>Ваш отзыв успешно отправлен!</p><span>Спасибо за обратную связь.</span></div></div><div class="feedback__popup" id="feedback__popup_why"><button type="button" class="feedback-popup-close">×</button><div class="feedback__popup-header">Уточните, почему:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Рекомендации не помогли</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Текст трудно понять</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Нет ответа на мой вопрос</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Содержание статьи не соответствует заголовку</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Другая причина</label></div><div class="feedback__popup" id="feedback__popup-other"><button type="button" class="feedback-popup-close">×</button> <div class="feedback__popup-header">Расскажите, что вам не понравилось в статье:</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Отправить"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg"/><span class="feedback-form__btn-group_yes-btn">Да</span></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg"/><span class="feedback-form__btn-group_no-btn">Нет</span></label></div><select name="category"><option disabled>Выберите вариант</option><option value="bad_recommendation" selected>Рекомендации не помогли</option><option value="difficult_text">Текст трудно понять</option><option value="no_answer">Нет ответа на мой вопрос</option><option value="bad_header">Содержание статьи не соответствует заголовку</option><option value="other_reason">Другая причина</option></select><input type="submit"></form></div></div>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
@ -203,7 +206,7 @@
|
||||
<input type="checkbox" />
|
||||
<div class="article__arrow"></div>
|
||||
<div class="table-of-contents elma365-right" id="toc2Content">
|
||||
<h3 class="h3-toc">In this topic</h3>
|
||||
<h3 class="h3-toc">В этой статье</h3>
|
||||
<nav id="toc2"></nav>
|
||||
</div>
|
||||
</aside>
|
||||
@ -214,30 +217,63 @@
|
||||
<div class="footer-container">
|
||||
<div class="footer-mobile">
|
||||
|
||||
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
|
||||
<ul class="footer-mobile__list"><li><a href="https://api.elma365.com/ru/" target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/" target="_blank">TS SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/elma365" target="_blank">Академия</a></li></ul><ul class="footer-mobile__list"><li><a href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li></ul>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="footer-wrap">
|
||||
|
||||
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
|
||||
|
||||
<div class="footer-flex-b">
|
||||
<span class="footer-copy">© 2025 BRIX</span>
|
||||
<ul class="footer-list">
|
||||
|
||||
<li class="footer-item">
|
||||
<a href="#" class="arrow-top" style="display: block;"></a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<div class="container">
|
||||
<div class="footer-wrap">
|
||||
|
||||
<div><span class="mobile-question-popup">Отправить фидбэк</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Задать вопрос</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Отправить"></div></form><div class="hidden fade-in question-success-xs">Ваш фидбэк отправлен.</div></div>
|
||||
|
||||
<div class="footer-flex-b">
|
||||
<div class="footer-top">
|
||||
<span class="footer-copy">© 2025
|
||||
ELMA365
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
|
||||
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="footer-line">
|
||||
|
||||
<div class="footer-line-copy">
|
||||
<span class="footer-copy">© 2025
|
||||
ELMA365
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="footer-list">
|
||||
|
||||
<li class="footer-item"><a href="https://elma365.com/ru/" target="_blank" class="footer-link" style="color: #0D4A75;"><img src="browse.svg" alt="browse icon" class="footer-img">elma365.com</a></li><li class="footer-item"><a href="https://www.youtube.com/user/ELMABPM" target="_blank" class="footer-link"><img src="yt.svg" alt="youtube icon" class="footer-img"></a></li><li class="footer-item"><a href="https://vk.com/elma_bpm" target="_blank" class="footer-link"><img src="vk.svg" alt="vk icon" class="footer-img"></a></li><li class="footer-item"><a href="https://t.me/elmaday" target="_blank" class="footer-link"><img src="tg.svg" alt="telegram icon" class="footer-img"></a></li><li class="footer-item"><a href="https://dzen.ru/elma" target="_blank" class="footer-link"><img src="dzen.svg" alt="dzen icon" class="footer-img"></a></li>
|
||||
|
||||
|
||||
<li class="footer-item">
|
||||
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
|
||||
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" class="arrow-top"></a>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
<!-- <script type="text/javascript" src="jquery1.min.js"></script>-->
|
||||
<iframe name="hmnavigation" style="display:none!important"></iframe>
|
||||
<script src="./jquery-ui.js"></script>
|
||||
<!--<script src="./jquery-ui.js"></script> -->
|
||||
<script src="./jquery-ui.min.js"></script>
|
||||
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
|
||||
<script src="./jquery.tocify.min.js"></script>
|
||||
<script src="./TypoReporter.min.js"></script>
|
||||
|
Reference in New Issue
Block a user