Ich baue eine einfache API mit Rails 5. Ich folgte diesem Video-Tutorial here, das die jsonapi-resources gem verwendet. Ich ging ein bisschen weiter und richtete einige API-Sicherheit mit Edelsteinen ein.Filterkette angehalten als: ensure_valid_accept_media_type gerendert oder umgeleitet Abgeschlossen 406 Nicht akzeptabler Fehler
# 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]
Ich habe das Video und andere Blog-Posts gefolgt, und ich erhalte die folgenden Fehler:
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)
Und wenn ich die Index-Seite für Sammlungen (http://mydevapp.com/collections.json) besuchen erhalte ich:
{"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"}]}