【问题标题】:APIPIE for a simple Rails Application用于简单 Rails 应用程序的 APIPIE
【发布时间】:2014-10-30 11:38:59
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    首先让我告诉您有关 Web 应用程序和 API 应用程序的信息。您可以将两者保存在一个应用程序中。您需要将渲染为 :json 用于 API,并将渲染为 html 用于 Web 应用程序。两种应用程序之间存在差异。尽管您可以将这两种操作放在一个应用程序中,但您需要小心渲染/重定向。

    对于这个错误:

    哎呀!!找不到资源的方法

    您需要在 /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
    

    然后重新启动您的网络服务器以获取更改。

    【讨论】:

      猜你喜欢
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多