Plug - это среда веб-приложений для Elixir.
1 ответ

Крипто исключение в эликсире

Я настроил приложение elixir и определил маршруты администратора. Но я получаю следующую ошибку при попытке получить доступ к любым маршрутам. (выход) возникла исключительная ситуация: ** (ArgumentError) ошибка аргумента (crypto):crypto.hmac_nif(:sh…
05 окт '18 в 02:47
1 ответ

Доступ к результату Elixir Plug.Parsers.JSON

Я пишу небольшой http-сервер с помощью Elixir Plug и испытываю некоторые затруднения с пониманием того, как работает его парсер. Я не могу понять, как получить доступ к результату парсера в моем маршрутизаторе. У меня сейчас ... plug Plug.Parsers, p…
03 апр '17 в 13:50
1 ответ

Разбор json-части многочастного / смешанного запроса в Elixir/Phoenix

Я пишу бэкэнд API Jlix Elixir / Phoenix json и хотел бы, чтобы конечная точка получала несколько файлов изображений вместе с некоторыми атрибутами в формате json в одном запросе. Я использую multipart/mixed тип контента для этого и вот как выглядит …
28 июн '18 в 17:44
2 ответа

Как перенаправить трафик с Http на Https в Phoenix Elixir для SSL на балансировщик нагрузки?

Мне нужно перенаправить трафик с Http на Https, SSL находится на балансировщике нагрузки, поэтому все, что мне нужно сделать, это переслать заголовок с помощью plug_ssl так по моему prod.exs Я добавил: config :web, Web.Endpoint, force_ssl: [rewrite_…
08 июн '18 в 01:16
2 ответа

Читайте необработанное тело из разъема после парсера в Elixir

У меня есть требование проверить дайджест содержимого JSON, отправленного на сервер Phoenix. Для проверки дайджеста необходимо сырое тело. Есть ли способ получить доступ к необработанному контенту в плагине позже в конвейере, чем парсеры. Я хочу доб…
06 янв '17 в 17:26
0 ответов

Как проверить Plug, который устанавливает статус 404 вместе с перенаправлением Phoenix

Я пытаюсь проверить, что плагин ниже возвращает 404, когда site_id не найден. В браузере все работает, но тест выдает исключение. Мой плагин: defmodule MyWeb.Plugs.GetSite do import Plug.Conn def init(default), do: default def call(%Plug.Conn{host: …
21 фев '19 в 21:57
3 ответа

Феникс: Как получить conn %Plug.Conn{} в консоли

После iex -S mix phx.server Я хочу провести несколько быстрых тестов в терминале iex, но некоторые функции требуют в качестве аргумента struct %Plug.Conn{}, например, я хотел получить результат выражения: MyAppWeb.Router.Helpers.confirmation_url(%Pl…
27 авг '17 в 17:10
2 ответа

Plug Parser: повышение ParseError

Я пишу Plug Parser, который, помимо прочего, декодирует JSON с использованием Poison (я бы предпочел, чтобы Plug.Parsers.JSON сделать это, но мне нужно прочитать необработанное тело запроса, чтобы проверить его на соответствие подписи, так что это н…
03 июл '18 в 10:25
0 ответов

Настройка заголовков Plug.Static в Фениксе

Я пытаюсь поставить заголовок Connection: Keep-Alive в lib/app/endpoint.ex: plug Plug.Static, at: "/", from: :app, gzip: true, only: ~w(css fonts images js favicon.ico robots.txt), etag_generation: {}, cache_control_for_etags: "public, max-age=31536…
24 фев '17 в 11:36
1 ответ

Обработка ошибок для больших запросов и отправка 413 ответа

У меня есть функция загрузки голосовых заметок. Я писал тесты, и как часть этого я написал следующий тест для больших файлов, где я хочу, чтобы он выдавал ошибку слишком большого размера 413: test "send VN fail when too large", %{conn: conn} do Couc…
04 ноя '18 в 14:24
1 ответ

Заголовки запроса соответствия шаблона феникс

Я пытаюсь реализовать пользовательский плагин для управления версиями API. Теперь мне нужно иметь возможность сопоставить значение, переданное с заголовками запросов (т.е. Accept: application/vnd.app.v1+json). До сих пор я реализовал следующее: defm…
19 фев '17 в 19:11
0 ответов

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

У меня есть 2 страницы в приложении Phoenix, и им нужны разные ограничения для размера загружаемых файлов (одна страница подходит для ограничения по умолчанию в 8 МБ, а вторая требует более высокого ограничения). Из документов я могу увеличить огран…
21 июн '18 в 08:36
2 ответа

Почему полезно конвертировать HEAD-запросы в GET-запросы?

В новом приложении Феникс Plug.Head Плагин присутствует по умолчанию, и я был заинтригован о его значении. Я знаю, что " метод HEAD идентичен GET, за исключением того, что сервер НЕ ДОЛЖЕН отправлять тело сообщения в ответе ". Я думаю, что официальн…
30 янв '17 в 03:24
1 ответ

Как работает Plug.Exception?

У меня возникли проблемы с получением простого примера для работы. Я не использую Phoenix FWIW, просто подключи defmodule Unauthorized do defexception message: "not authorized", plug_status: 401 end defmodule Foo do use Plug.Router plug :match plug …
17 май '17 в 19:37
2 ответа

Феникс начал бросать (UndefinedFunctionError) функцию:crypto.rand_bytes/1 не определено или является приватным

После обновления моей системы - MAC, приложение Phoenix прекрасно компилируется, но выдает эту ошибку каждый раз, когда я нажимаю на любой маршрут. Сервер: localhost:4000 (http) Запрос: GET / ** (выход). Возникла исключительная ситуация: ** (Undefin…
05 июл '17 в 13:39
1 ответ

HMAC, Elixir, Plug.Conn (пытается вызвать read_body более одного раза)

Я борюсь с проблемой, когда что-то читает тело http-запроса, прежде чем Plug.Parsers.JSON получает его в конвейере. Из-за этого время ожидания read_body в плагине json - вы не можете прочитать тело дважды. У нас есть реализация HMAC в более ранней в…
27 июл '18 в 16:57
0 ответов

Ошибка Erlang: Plug.Parsers.RequestTooLargeError - {"content-length", "1274"}

Я получал эту ошибку несколько раз, и я не уверен, что могло ее вызвать. У кого-нибудь есть понимание? Erlang error: {{%Plug.Parsers.RequestTooLargeError{message: "the request is too large. If you are willing to process larger requests, please give …
12 фев '19 в 02:24
3 ответа

Эликсир / Феникс: как реализовать тайм-аут / истечение времени сессии

Я работаю над ванильным приложением Elixir / Phoenix и следую общим шагам в книге " Программирование Phoenix", чтобы реализовать базовую систему входа и выхода (см. Фрагменты ниже). Однако я не вижу советов в книге или в Интернете о том, как настрои…
29 янв '17 в 18:47
2 ответа

Передача параметра Elixir в Plug для предыдущего параметра plug

Возможно, это не вопрос Breadcrumble, но как мне передать параметр из предыдущего плагина в крошку? Например, если предыдущий плагин set_merchant устанавливает торговца на conn.params.merchantкак я могу это пройти id к хлебочувствительным? plug :set…
02 янв '18 в 16:43
0 ответов

Эликсир перенаправить Http в Https

Мое приложение правильно отвечает на https://localhost/, а http://localhost/ выдает ERR_EMPTY_RESPONSE. http://localhost/ должен быть перенаправлен на https://localhost/. Как я могу получить это в чистом эликсире? (без феникса или что-то такое...). …
09 июн '17 в 08:11