我有一个rails应用程序(不是rails-api)
class ApplicationController < ActionController::Base
而不是
class ApplicationController < ActionController::API
我想要这个应用程序的HTML文档。我为此目的使用apipie但是我得到了
Oops!! Method <code></code> not found for resource <code></code>
控制器位于app / controllers /,配置似乎很合适。
我假设rails应用程序也可以被视为API。控制器正在呈现json,这应该足以将应用程序视为Web应用程序和API吗?我是否需要为API目的编写单独的rails-api应用程序?帮助我理解两者之间的区别,以防我错过了一些观点。
答案 0 :(得分:1)
首先让我告诉你关于API的网络应用和应用。您可以在一个应用程序中保留两者。您需要使用render作为:json for API并渲染为web应用程序的html。两个应用程序之间存在差异。虽然你可以将两个操作放在一个应用程序中,但是你需要注意渲染/重定向。
对于此错误:
糟糕!!资源
找不到方法
您需要在/config/initializers/apipie.rb
中更改配置Apipie.configure do |config|
config.app_name = "AppDepot"
# set api base url here
config.api_base_url = "/api/v1"
# set url here for open docs related to apidoc
config.doc_base_url = "/apidocs"
# set true/false for default validation
config.validate = false
# set copyright here
config.copyright = "© 2014 sachin"
config.validate_value = false
# where is your API defined?
config.api_controllers_matcher = "#{Rails.root}/app/controllers/api/v1/*.rb"
config.default_version = "1.0"
config.app_info = "Tell about your application"
# set username and password for access api
config.authenticate = Proc.new do
authenticate_or_request_with_http_basic do |username, password|
username == "admin@example.com" && password == "password"
end
end
end
然后重新启动您的Web服务器以获取更改。