在設計API時,我可以堅持哪些準則和最佳實踐?至少,我知道一個API應該易於使用和靈活。不幸的是,這些術語可能相當主觀,所以我一直在尋找一些關於良好API設計的具體指導方針。設計API的最佳實踐和指導原則
回答
我發現下面是值得一看 Joshua布洛赫 - How To Design A Good API and Why it Matters
這個例子雖然在Java中,但仍然可以繪製平行線。既然你沒有提到特定的技術,我假設你不需要利基解決方案。
[更高分辨率的相同視頻(YouTube)](http://www.youtube.com/watch?v=heh4OeB9A-c) – 2014-03-06 07:46:12
[REST API架構 - 最佳實踐](http://dasunhegoda.com/rest- api-architecture-best-practices/1049 /) – Techie 2015-11-18 17:10:56
有關於Joshua Bloch的這個話題的good presentation。演示文稿使用Java,但想法與語言無關。 Another source (pdf)快速瀏覽。
我認爲你的問題不會在你提供的信息量的這個空間量中得到回答。我已經把幾個環節從鍵入谷歌的API設計「,並在第一頁上獲得這些看起來相當不錯
http://web.archive.org/web/20151229055009/http://lcsd05.cs.tamu.edu/slides/keynote.pdf
http://web.archive.org/web/20090520234149/http://chaos.troll.no/~shausman/api-design/api-design.pdf
這是微軟的鏈接: http://msdn.microsoft.com/en-us/library/ms229042.aspx
還有這本書: 框架設計指南:公約,成語和可重複使用.NET庫
感謝你提出這個問題...雖然可能是.net爲中心的。 – Gishu 2010-04-12 04:30:37
正如有人誰能夠消費模式噸原料藥......
請把你的API以一致的方式:
API本身內部的一致命名。使用動詞,名詞,關鍵字完全相同的風格。
與目標環境一致,它將被使用。如果使用.NET,請參閱Microsoft的命名指南。
一致的概念。工廠模式? Builder模式?靜態方法?接口?只需選擇一個,然後堅持下去。真。有沒有這樣的事情規則的例外小。它會作爲一個大拇指拇指突出。超過1個例外?你的API越來越多的是業餘愛好者。
這是另一個:特異性。
我可以實現的基類,如果你選擇提供它們,應該有很少和明確定義的函數來實現。不要告訴我「GetData()」返回一個「object []」,然後期望我實現它,找出爲什麼我必須將它轉換爲字符串[],然後調試爲什麼它被調用了20次。 有DataPoint [] GetChartData(),string [] GetLabelData()等,讓我選擇我應該實現哪些是好得多。
請不要傻得跟名字:PostRenderColorWheelModifyHSVBaseHandler。 您經常可以將超特定的東西重構爲更通用的名稱+參數。
字符串參數是否定的!使用枚舉。我不想使用像處理程序
PostRenderHandler(「ColorWheel」,「HSV」,someDelegate);
我寧願像一個枚舉我可以調查:
PostRenderHandler(ModuleType.ColorWheel, Options.ColorWheelHSV, someDelegate);
男人,我可以繼續下去...電力到喬希布洛赫傢伙 - 寫得很好的API可真真棒壞的可能會非常痛苦。
感謝您的反饋!是的,約書亞布洛赫人真棒。我一點也不驚訝他的名字出現。我相信他寫了Effective Java的書。 – 2010-04-12 18:12:05
是的,他是作者。這本書非常非常好。這些規則和建議似乎是「Clean Code」的第一部分。 – Bakudan 2012-11-30 00:51:56
- 1. 的RESTful API設計的最佳實踐
- 2. API設計變更的最佳實踐
- 3. 設計API時的最佳實踐
- 4. 適用於域驅動設計原則的最佳實踐?
- 5. JSON設計最佳實踐
- 6. 最佳VHDL設計實踐
- 7. Android設計最佳實踐
- 8. modalPanel和設計最佳實踐
- 9. VB.NET最佳實踐和設計類
- 10. wcf最佳設計原則
- 11. 寧靜api的設計理念和最佳實踐
- 12. Web應用程序設計分層規則和最佳實踐
- 13. 什麼是REST API和用戶角色設計最佳實踐?
- 14. GWT中的MVP:最佳設計實踐
- 15. 針對JSP的最佳設計實踐
- 16. C(或一般程序編程)的設計原則,最佳實踐和設計模式?
- 17. 最佳實踐,對象設計ASP.NET MVC
- 18. 最佳實踐數據庫設計
- 19. Hbase Scheme設計 - 最佳實踐
- 20. GWT面板設計最佳實踐
- 21. Grails commandObject - 設計最佳實踐
- 22. 星型架構設計/最佳實踐
- 23. 數據庫設計最佳實踐
- 24. 可可回調設計:最佳實踐
- 25. 最佳實踐指南:Swing
- 26. 最佳實踐UI指南?
- 27. 指針最佳實踐
- 28. XAML最佳實踐指南
- 29. API自動化框架的最佳實踐設計模式
- 30. RESTful API最佳實踐
哪種語言/平臺? C#? C++? Java的?肥皂?休息? – bobbymcr 2010-04-12 04:21:46
必須有這方面的互聯網資源...例如http://chaos.troll.no/~shausman/api-design/api-design.pdf – WhirlWind 2010-04-12 04:22:28
+1很好的問題。我很受限於你的應用程序設計的'框架'/是非直觀的。 – Gishu 2010-04-12 04:29:35