簡體   English   中英

無法在 UI 中閱讀 swagger 的文檔(Rails 項目,本地主機)

[英]Can't read swagger's doc in UI (Rails project, localhost)

當我來到http://localhost:3000/api/swagger 時,我在文檔的地址字段中看到http://api.webcrm.dev:3000/doc ,結果,消息Can't read from server. It may not have the appropriate access-control-origin settings. Can't read from server. It may not have the appropriate access-control-origin settings. 而不是我的 api 端點等。

我試圖找到正確的地址以在本地主機中使用它。

控制台中

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? }"

routes.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

找到正確的地址: http://localhost:3000/api/swagger_doc看起來我們應該用配置做一些事情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM