Не могу прочитать swagger do c в пользовательском интерфейсе (проект Rails, localhost) - PullRequest
0 голосов
/ 19 февраля 2020

Когда я подхожу к http://localhost: 3000 / api / swagger , я вижу в поле адреса do c http://api.webcrm.dev: 3000 / do c и, как результат, сообщение Can't read from server. It may not have the appropriate access-control-origin settings. вместо конечных точек моего API и т. д. c.

Я пытаюсь найти правильный адрес, чтобы использовать его в localhost.

в консоли :

Settings.api
=> {"url_options"=>{"host"=>"api.webcrm.dev", "port"=>3000, "version"=>"/v1/"},
 "swagger"=>{"discovery_url"=>{"host"=>"api.webcrm.dev", "port"=>3000, "path"=>"/doc"}}}

в application.yml :

api:
  url_options:
    host: api.webcrm.dev
    port: 3000
    version: /v1/
  swagger:
    discovery_url:
      host: api.webcrm.dev
      port: 3000
      path: /doc

в config / initializers.010_swagger.rb :

GrapeSwaggerRails.options.url     = Settings.api.swagger.discovery_url.path
GrapeSwaggerRails.options.app_url = "http://#{Settings.api.swagger.discovery_url.host}#{ ':' + Settings.api.swagger.discovery_url.port.to_s if Settings.api.swagger.discovery_url.port.present? }"

в rout.rb :

mount API => '/api' if ENV['ASSETS_PRECOMPILE'].blank?
  mount GrapeSwaggerRails::Engine => '/api/swagger'
  get '/api', to: redirect('/api/swagger')

Но в выводе журналов я вижу:

2020-02-19 12:11:07 +0700: HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
2020-02-19 12:11:07 +0700: ENV: {"rack.version"=>[1, 3], "rack.errors"=>#<IO:<STDERR>>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"puma 3.7.0 Snowy Sagebrush", "GATEWAY_INTERFACE"=>"CGI/1.2"}
---

Как найти правильный адрес документа и почему это не вводится автоматически? Большое спасибо за помощь!

PS: Rails 4.2.11.1 ruby 2.3.8p459

1 Ответ

0 голосов
/ 19 февраля 2020

Найден правильный адрес: http://localhost: 3000 / api / swagger_do c похоже, что мы должны что-то сделать с конфигами

...