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