我對 Swagger 的評價
我同事向我介紹了 Swagger (https://helloreverb.com/developers/swagger)。經過簡短評估後,我認為 Swagger 的想法不錯,但實務上是壞的。
Swagger 嘗試為 RESTful API 服務提供一個自我描述的方法並配合一個有用的客戶端工具,以便 RESTful API 的使用者了解服務內容與調用它。
還不錯,但不夠好。Swagger-ui 是和 Swagger 產生的自我描述文件內容綁定運行的客戶端工具。對於使用者來說,這是個容易使用的客戶端工具。但是有許多替代品。一個 IDE 也會提供更強大的 RESTful API 客戶端工具。 Swagger-ui 可能不是最好的,使用者更傾向使用自己偏好的工具。
壞。 Swagger 規範了一份 RESTful API 自我描述的文件格式。不同的程式語言需要實作各自的文件產生工具以輸出這份符合 swagger 規範的文件。 Restler 就是 PHP 語言的其中一個 swagger 框架。但是這些工具之間存在太多不同的標注方式與風格,不能提供 RESTful API 設計者一致的使用體驗。此外,其中一些工具過於侵入我既有的程式碼,甚至於可能要為了配合它而改變程式架構或類別繼承關係。沒有足夠的誘因讓我轉移程式碼。如果你是一個使用 Spring 框架的 Java 使用者,也許不會有轉移的問題。因為有一個 Spring 的擴充項目增加了 Swagger 用的 annotation ,可以在配合 Spring annotation 的情況下實現 Swagger 。
你設計的 RESTful API 需要一份清晰易讀的文件。但未必需要為此加入一個框架。一個可以從源碼註解區塊提取 RESTful API 說明內容,並將提取結果輸出為一份 HTML 文件的簡單工具,通常就足夠了。
樂多舊回應