2011-09-06 39 views
1

所以我在使用Devise作爲我的身份驗證機制在Rails 3中構建應用程序。我擁有所有的控制器和視圖。我們的網站正在嗡嗡作響。現在我們想將我們的路線導出到第三方開發者。問題在於如何。如何爲我的Rails 3 REST服務生成公共文檔?

下面是我認爲我需要弄清楚的事情列表。

  1. 第三方認證。我正在努力使自己腦中的事情變成我需要做的事情。我們有一個現有的用戶羣,使用Devise身份驗證模型爲他們創建了令牌。現在我需要提供某種安全性。我目前的思路是建立一個OAuth提供程序來管理私鑰,然後以某種方式將我們的Web應用程序設置爲第三方開發人員可以訪問的應用程序之一。這是正確的思路還是我過度設計它?

  2. 爲我們的REST端點生成面向公衆的文檔。雖然內部開發者的耙路線很好,但我認爲我們需要更多的東西來滿足swagger-ui的需求。問題是rails不會爲swagger-ui生成適當的json/xml調用。據我所知,這是真正的REST服務所必需的。如資源列表和資源上列出的操作。

在此感謝您提供給我的任何方向!

+0

https://github.com/richhollis/swagger-docs – nycynik

回答

0

如果您的用戶有安全元素,我一定會推薦OAuth。也就是說,您希望某人能夠通過其服務編輯多個用戶詳細信息,然後使用三方OAuth(提供商,用戶,客戶端)。否則,請轉到雙腿OAuth(提供商,客戶端)。

如果要實施3腿OAuth API,那麼我寫了一個可用的教程here。它使用Devise和Oauth2。

至於文檔,我會盡可能編寫自定義文檔,而不是依賴工具。 Twitter有一個很好的文檔API,我用它作爲我編寫的RESTful API的基礎。

+0

該指南非常有幫助。有一點是不清楚的地方,「oauthenticate:interactive => false」我試圖把它放到我的application_controller中,因爲我希望所有的東西都需要oauth,但是它不能識別它。我想允許登錄或OAuth,因爲我的網絡應用程序將使用登錄與API交談。 – Altonymous

+0

如果您將交互設置爲true,那麼它應該允許API和登錄訪問。 – Gazler

+0

這就是我所做的。一切「似乎」都在起作用。當我們的QA獲得一些免費週期時,我們將進行一些測試。這是我提前做的一個副項目。 :-P謝謝Gazler。我給你信貸,但如果我們的測試人員發現任何問題,我會告訴你! – Altonymous

4

我對Swagger(我在Wordnik上工作)有偏見,並指出我們將添加ruby服務器支持來自動生成描述圖層,就像我們使用Scala一樣。

+0

越早發生越好。在我看來,真正需要做的就是生成資源的一些方式,操作響應和swagger-ui應該可以工作。 – Altonymous

+0

在這方面還沒有看到任何更新...事情如何發展? – Altonymous

+0

@Altonymous我正在開發Ruby註解支持。按照twitter上的swagger_doc獲取該方面的更新。 – Zeke

相關問題