---
title: Пример создания http-сервиса
slug: общие-обмен-данными-http-сервис/пример-создания-http-сервиса
---
HTTP-запрос в общем случае имеет вид
![image.png](data:image/png;base64,[encoded data, 303228 characters])

Например, `http://myserver/mybase/hs/my_servise/v1/ping`. 

Запрос может содержать произвольное количество параметров, которые указываются после относительного URL и знака **`?`**. Параметры передаются парами **«Ключ-значение»** и имеют вид **«myparam=value»**. Если необходимо передать несколько параметров, они разделяются между собой знаком **`&`** — например: `http://myserver/mybase/hs/my_servise/v1/ping?my_param1=10&my_param2=20`

Общая схема работы с HTTP:
![image.png](data:image/png;base64,[encoded data, 68452 characters])

## Создание сервиса
Сначала необходимо **опубликовать базу на веб-сервере**

Затем в дереве конфигурации по пути `Общие — HTTP-сервисы` создаем новый сервис `MobileAPI` для обмена с мобильным приложением.
![image.png](data:image/png;base64,[encoded data, 32852 characters])

В свойствах сервиса необходимо указать **корневой URL**, чтобы явно отличать сервисы.
После создания сервиса, необходимо создать **шаблоны URL** - это то, как будет выглядеть относительный URL.
![image.png](data:image/png;base64,[encoded data, 28972 characters])
В свойствах шаблона нужно указать **шаблон относительного URL**, в который можно добавлять параметры — Конструкции, заключенные в фигурных скобках. С текущими настройками шаблон URL будет выглядеть следующим образом
**`http://host/base/hs/mobile_uat/v1/{любой метод}`**
Далее для каждого шаблона необходимо определять **методы HTTP**. Принято создавать методы на каждый используемый метод HTTP — `GET`, `POST`, `PUT` и т.д., в обработчике которых и будут перехватываться параметры http-запроса
![image.png](data:image/png;base64,[encoded data, 33616 characters])
Обработчик http-метода функционирует в контексте **СЕРВЕРА**
## Пример обработчика
```bsl
Функция uatGET(Запрос)
	
        // то, что мы указывали в параметрах шаблона URL
	ИмяМетода = Запрос.ПараметрыURL.Получить("ИмяМетода");
	
	Ответ = Неопределено;
 
	// в зависимости от имени метода выбирается обработчик
	Если ИмяМетода = "ping" Тогда	
		Ответ = РезультатПроверкиСоединения(Запрос);		
	ИначеЕсли ИмяМетода = "my_tasks" Тогда
		Ответ = СписокТекущихЗаданийВодителя(Запрос);
	ИначеЕсли ИмяМетода = "task_last_file" Тогда
		Ответ = ПоследнийПрисоединенныйФайлЗаявки(Запрос);
	ИначеЕсли ИмяМетода = "task_all_files" Тогда
		Ответ = СписокПрисоединенныхФайловЗаявки(Запрос);
	ИначеЕсли ИмяМетода = "file_by_uuid" Тогда
		Ответ = ПрисоединенныйФайлПоСсылке(Запрос);
	ИначеЕсли ИмяМетода = "status_list" Тогда
		Ответ = СписокСтатусовЗаявок(Запрос);
	ИначеЕсли ИмяМетода = "driver_uuid_by_personal_num" Тогда
		Ответ = УИДВодителяПоТабельномуНомеру(Запрос);
	ИначеЕсли ИмяМетода = "all_tasks" Тогда
		Ответ = СписокВсехЗаявок(Запрос);
	Иначе
		Ответ = ОтветНаНеподдерживаемыйМетод(Запрос);
	КонецЕсли;
	
	Возврат Ответ; // тут всегда должен быть HTTPСервисОтвет
	
КонецФункции
```

### Пример обработчика метода `ping`
```bsl
Функция РезультатПроверкиСоединения(Запрос)
	
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.УстановитьТелоИзСтроки("Соединение установлено успешно", КодировкаТекста.UTF8);
 
	Возврат Ответ;
 
КонецФункции
```
Важно помнить, что тело ответа в общем случае — это **строка**, но эта строка может быть сформирована в формате `HTML`, `XML`, `JSON` и пр. Файлы и прочие двоичные данные можно передавать как `Base64` строку

Таким образом, при вводе в адресной строке браузера адрес http://host/base/hs/mobile_uat/v1/ping, в браузере отобразится сообщение «Соединение установлено успешно»

## Отладка сервиса
Для отладки лучше использовать приложение [Postman](https://www.postman.com/downloads/)
![image.png](data:image/png;base64,[encoded data, 165084 characters])
Также желательно установить на сервере **отладку по HTTP** и настроить автоматическое подключение **HTTP-сервисов**. (Такой выбор появится только при HTTP отладке)
![image.png](data:image/png;base64,[encoded data, 38416 characters])
![image.png](data:image/png;base64,[encoded data, 40092 characters])

### Настройка http-отладки на сервере

1. Вызовите редактор реестра Windows: нажмите `Win + R` и введите команду `regedit`.
2. В редакторе реестра найдите и раскройте ветку:

    - Для 64-битного сервера:  
      `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64)`

    - Для 32-битного сервера:  
      `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent`

3. Найдите параметр `ImagePath`, откройте его и в конец строки **добавьте пробел и флаг `–debug -http`**.