Цепочка фильтров остановлена ​​следующим образом: обеспечен-перенаправлен или обеспечен перенаправленный:

ruby-on-rails ruby json activerecord api-design

440 просмотра

1 ответ

638 Репутация автора

Я строю простой API с помощью Rails 5. Я после этого видео учебник здесь , который использует jsonapi-ресурсы камень. Я пошел немного дальше и на самом деле настроил некоторую защиту API с помощью гемов.

# Gemfile
source 'https://rubygems.org'

gem 'rails', github: 'rails/rails'
gem 'sqlite3'
gem 'puma'
#gem 'pg'
gem 'jsonapi-resources', '~> 0.7.1.beta2'

# Security
gem 'rack-attack'
gem 'rack-protection'
gem 'secure_headers'
gem 'brakeman'
gem 'rack-cors'

gem 'omniauth'
gem 'omniauth-oauth2'
gem 'devise'
gem 'devise_token_auth', git: 'git://github.com/lynndylanhurley/devise_token_auth.git'
gem 'omniauth-twitter'
gem 'omniauth-facebook'
gem "omniauth-google-oauth2"
gem 'omniauth-github'
gem 'omniauth-twitch'
gem 'omniauth-instagram'

gem 'pundit'
gem 'dynamic_sitemaps'
gem 'faker'

group :development, :test do
  gem 'byebug', platform: :mri
  gem 'better_errors'
end

group :development do
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Я проследил за видео и другими сообщениями в блоге и получил следующую ошибку:

Started GET "/collections.json" for 14.144.15.10 at 2016-07-19 00:26:03 +0000
ActiveRecord::SchemaMigration Load (0.1ms)  SELECT "schema_migrations".* FROM "schema_migrations"
Processing by CollectionsController#index as JSON
Filter chain halted as :ensure_valid_accept_media_type rendered or redirected
Completed 406 Not Acceptable in 289ms (Views: 0.3ms | ActiveRecord: 0.0ms)

И когда я захожу на страницу индекса для коллекций ( http://mydevapp.com/collections.json ), я получаю:

{"errors":[{"title":"Not acceptable","detail":"All requests must use the 'application/vnd.api+json' Accept without media type parameters. This request specified 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'.","code":"406","status":"406"}]}
Автор: thecrentist Источник Размещён: 19.07.2016 12:42

Ответы (1)


1 плюс

638 Репутация автора

Так что никогда не было проблем с API. Из-за моего ограниченного опыта работы с API я просто посещал страницу, но поскольку я добавил жемчужины безопасности, он разрешал доступ к данным только посредством вызовов API.

РЕШЕНИЕ. Я использовал Postman в качестве REST-клиента для выполнения вызовов моего API, но вы можете использовать любой, который вам понравится.

Автор: thecrentist Размещён: 19.07.2016 12:12
Вопросы из категории :
32x32