APIPIE用于简单的Rails应用程序

时间:2014-10-30 11:38:59

标签: ruby-on-rails ruby api documentation-generation rails-api

我有一个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应用程序?帮助我理解两者之间的区别,以防我错过了一些观点。

1 个答案:

答案 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               = "&copy; 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服务器以获取更改。