База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как создать универсальный каркас для HTTP-метода в 1С? › RE: Как создать универсальный каркас для HTTP-метода в 1С?
Универсальный каркас для 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.
– Формируется ответ с соответствующим кодом состояния и телом ответа.
Этот каркас можно адаптировать под конкретные задачи и требования вашего проекта.