Сгенерировать код для разных типов запросов из конфига

У меня есть приложение, которое делает много запросов на разные URL-адреса. Каждый из них имеет различную структуру запроса и ответа.

Конфигурации типов запросов находятся в базе данных Mysql.

Он содержит следующие данные:

  • URL-адрес
  • Метод
  • Параметры запроса
  • Параметры тела
  • Заголовки
  • Структура ответа

Поэтому, пока я использовал Node.js для этих целей, было легко найти решение для этого.

Но с Go я вижу единственный способ использовать для этого пакет Reflect. Но отражение вредит производительности приложения.

Есть ли простой способ сгенерировать код для этого?

Пример конфигурации запроса:

      {
  id: 1,
  name: "Req1",
  url: "http://example.com",
  query: [
    {name: "user_id", source: "user", value: "id" },
    {name: "user_ip", source: "user", value: "ip" },
    {name: "token", source: "const", value: "xxx" },
  ],
  headers: [
   {name: "Accept-Language", source: "user", value: "language"}
  ],
  body: [
    {"name": "user.ua", "user", "ua"}
  ]
}

Пример пользователя:

      {
  ip: "127.0.0.1",
  id: "123",
  ua: "User Agent...",
  "language": "en"
}

И в выводе должен быть сделан следующий запрос:

      URL: http://example.com?user_id=123&user_ip=127.0.0.1&token=xxx
Headers:
{
  Accept-Language: en
}
Body:
{
  user: {
    ua: "User Agent..."
  }
}

В теле может быть использован путь к параметру.

Есть ли инструмент для автоматической генерации кода такого типа?

0 ответов

Другие вопросы по тегам