Swagger只是一個規格。你可以手工製作一個沒有任何代碼的swagger規範,將規範提供給一個符合swagger-ui標準的頁面,並且它「將工作」。你可以有一個完全定義的API並使用UI頁面「運行」它。快遞也是如此,沒有大招 - 你可以做很多很棒的事情!但是需要做一些努力來記錄這個API。
如果您要使用swagger-node-express,則需要將代碼耦合到API文檔。這可以爲您節省大量時間,並將更改保存在同一個文件中,等等。然而,就像您提到的所有問題一樣,您必須以高傲的方式來做事情。比單獨做這兩件事要快,但是必須遵守一些限制條件。
還有其他的swagger包可以從不同的角度解決這個問題。我看到一些嘗試從Express/Restify路由自動構建swagger文檔。 swagger-node-express的替代方案是swagger-tools,它甚至包括驗證,但是我想你會以某種方式限制寫入Express,而沒有集成任何swagger。
您可以自由地手動(或使用某些YAML,jsDoc軟件包或生成器)構建swagger文檔,但在寫入路由後需要一些額外的時間。另外,它是一個獨立的地方來維護你的文檔,並且總是在某些時候它們會不同步,如果不放棄的話。使用swagger-node-express主要是節省時間的工具,即使存在缺點,這也許值得額外的開發工作。
是的,你是對的。 Maby我的目的不同,因爲我已經有API方法列表,現在我必須爲他們編寫代碼。我只是在尋找最靈活的工具 – 2015-04-01 12:46:43
我同意,在已經運行的應用程序中使用swagger-node-express將會有很多重寫。您可以編寫swagger-node-express文檔{{spec:{},action:importFuntion}'並在其周圍導入當前函數。另外,像[swaggerize-express](https://github.com/krakenjs/swaggerize-express)這樣的東西可能更適合您在現有API的基礎上生成swagger文檔。 – clay 2015-04-01 16:10:32