База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать универсальный каркас для HTTP-метода в 1С? › RE: Как создать универсальный каркас для HTTP-метода в 1С?
 Odin — Одинэсник
Odin — ОдинэсникУниверсальный каркас для HTTP-метода в 1С может выглядеть следующим образом. Этот пример демонстрирует, как обрабатывать запросы с использованием методов GET и POST, а также формировать ответ.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1C // Обработчик HTTP-сервиса Процедура ОбработатьЗапрос(Запрос, Ответ)     // Проверяем метод запроса     Если Запрос.HTTPМетод = "GET" Тогда         // Обработка GET-запроса         Артикул = Запрос.ПараметрыURL["artikul"];         Если Артикул = Неопределено Тогда             Ответ.УстановитьКодСостояния(400); // Bad Request             Ответ.УстановитьТелоИзСтроки("Параметр 'artikul' обязателен.");             Возврат;         КонецЕсли;         // Логика обработки данных по артикулу         Результат = ПолучитьДанныеПоАртикулу(Артикул);         Ответ.УстановитьКодСостояния(200); // OK         Ответ.УстановитьТелоИзСтроки(Результат);     ИначеЕсли Запрос.HTTPМетод = "POST" Тогда         // Обработка POST-запроса         ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();         // Предполагаем, что тело запроса содержит JSON         Данные = ПрочитатьJSON(ТелоЗапроса);         // Логика обработки данных         Результат = ОбработатьДанные(Данные);         Ответ.УстановитьКодСостояния(200); // OK         Ответ.УстановитьТелоИзСтроки(Результат);     Иначе         Ответ.УстановитьКодСостояния(405); // Method Not Allowed         Ответ.УстановитьТелоИзСтроки("Метод не поддерживается.");     КонецЕсли; КонецПроцедуры // Пример функции для получения данных по артикулу Функция ПолучитьДанныеПоАртикулу(Артикул)     // Здесь должна быть логика получения данных из базы     Возврат "Данные для артикула: " + Артикул; КонецФункции // Пример функции для обработки данных из POST-запроса Функция ОбработатьДанные(Данные)     // Здесь должна быть логика обработки данных     Возврат "Данные обработаны: " + Данные; КонецФункции // Пример функции для чтения JSON Функция ПрочитатьJSON(Строка)     // Здесь должна быть логика парсинга JSON     Возврат Строка; // Возвращаем строку как есть для примера КонецФункции | 
В этом каркасе:
— Обрабатываются запросы как методом GET, так и методом POST.
— Для GET-запроса проверяется наличие обязательного параметра.
— Для POST-запроса предполагается, что тело запроса содержит данные в формате JSON.
— Формируется ответ с соответствующим кодом состояния и телом ответа.
Этот каркас можно адаптировать под конкретные задачи и требования вашего проекта.
