Как получить доступ к заголовкам входящего запроса в тритии?

Я хотел бы иметь возможность добавить некоторую логику в свой проект Tritium на основе заголовка входящего запроса. Можно ли получить доступ к информации заголовка, а затем выполнить match() с логикой ()?

Мой план состоит в том, чтобы взять существующий URL-адрес (доступ к которому можно получить с помощью обычного запроса GET) и предоставить ему второй режим работы, чтобы его можно было превратить в AJAX API. Когда JavaScript делает запрос API, я мог бы установить собственный флаг заголовка, чтобы платформа знала, как интерпретировать запрос по-разному.

2 ответа

Вы должны иметь доступ к заголовкам во входящем HTTP-запросе, используя синтаксис глобальной переменной. Например, чтобы получить доступ к имени хоста сайта:

$host
# => yourwebsite.com

Я считаю, что большинство стандартных заголовков доступны в Tritium как глобальные переменные. Однако я не уверен, что все заголовки доступны как глобальные переменные.

Внутри вашей папки проекта, на вашей машине разработки, должен быть tmp папка, содержащая пакеты HTTP-запросов / ответов. Каждый пакет должен иметь отметку времени с указанием даты и времени запроса. Я думаю, что если вы загляните внутрь одной из этих папок, вы должны увидеть кучу файлов:

  • incoming_request
  • incoming_response
  • outgoing_request
  • outgoing_response

И, возможно, пятый файл. Я не могу вспомнить, так ли это в текущей версии платформы, но есть вероятность, что вы найдете пятый файл, содержащий глобальные переменные, которые сервер Tritium создает для хранения значений заголовка HTTP-запроса. Таким образом, вы можете заглянуть внутрь этого файла (если он существует) и узнать, какое имя переменной используют ваши заголовки HTTP.

Надеюсь, это поможет!

Я опаздываю на этот, но я подумала, что помогу кому-нибудь еще, кому нужна помощь в этом.

вам нужно создать два файла в каталоге скриптов, один из которых называется

request_main.ts

а также

response_main.ts

Затем вы можете использовать такие вещи, как функция parse_headers, которая перебирает заголовки запроса / ответа, в зависимости от файла, в который вы поместили код.

parse_headers() {  # iterate over all the incoming/outgoing headers
  log(name())      # log the name of the current cookie in the iteration
  log(value())     # log the value of the current cookie in the iteration
}

parse_headers(/Set-Cookie/) {  # iterate over the Set-Cookie headers only.
  log(this())
}

Это будет регистрировать все имена ваших заголовков, чтобы внести изменения, вы можете использовать функции "setter", о которых вы можете прочитать здесь:

http://developer.moovweb.com/docs/local/configuration/headers

Удачи.

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