Ответ 1
Обычно я читал эти поля заголовка request.format
и request.content_type
.
EDIT: нашел немного больше об этом, что могло бы помочь: fooobar.com/questions/195054/...
Чтобы найти тип входящего контента, docs say:
request.headers["Content-Type"] # => "text/plain"
Но я обнаружил, что с помощью проб и ошибок это не работает, но это делает:
request.headers["CONTENT_TYPE"]=='application/json'
Итак, какой самый надежный + переносимый способ сделать это?
Обычно я читал эти поля заголовка request.format
и request.content_type
.
EDIT: нашел немного больше об этом, что могло бы помочь: fooobar.com/questions/195054/...
Вам не нужно разбирать строку content_type, Rails уже сделала это за вас. Просто проверьте:
request.format.symbol == :json
Не нужно вызывать #symbol, так как равногружается:
request.format == :json
Другой способ записи:
request.format.json?
request.format == 'application/json'
Для меня лучший способ проверить, является ли входящий запрос json:
if request.content_type =~ /json/