當您使用其他Web應用程序Restful API時,您通常使用包裝庫還是直接使用Restful API與HTTP客戶端?你如何使用Restful API?
0
A
回答
2
這是一個很難回答的問題,主要是因爲在目前的行業狀況下,正確的答案是非常不切實際的。
在我看來,正確的答案是你不應該使用包裝API。統一的接口是HTTP,並且應該是客戶端針對的編程模型。
話雖如此,讓解析媒體類型來生成強類型版本的助手類沒有什麼問題。就像這樣,
var response = HttpClient.Get(linkTofoo);
if (response.ContentType =='application/foo') {
var strongFoo = FooHelper.Parse(fooResponse);
HandleFoo(strongFoo);
}
不幸的是,絕大多數聲稱是RESTful的apis都不是。他們不尊重自我描述和超媒體約束,因此他們很難以RESTful的方式與他們交互。它們要求您執行客戶端URI構造,並且事先知道將從端點返回的類型。
令人遺憾的事實是,在許多API中,您別無選擇,只能使用提供的客戶端代理庫。這不應該是這樣。
如果您正在尋找評估客戶端庫,請確保它是無狀態的。客戶端庫不應該開始管理返回對象的生命週期。 Http緩存就是這樣做的,所以除非它是一個超級智能庫,當緩存表示過期時可以使對象引用失效,否則應避免使用任何有狀態的客戶端庫。
e.g.
var foo = remotelibrary.GetFoo(233);
var bar = foo.bar; // If this causes an HTTP request
var barcopy2 = foo.bar // and this doesn't because it already has a reference to bar
// I would be very leary of using this library
1
從長遠來看,使用庫幾乎肯定會更好。這使您可以抽象出設計的寧靜,並忽略整個HTTP業務。
如果您使用的任何API都不存在現有的庫,那麼您應該考慮編寫自己的API。
相關問題
- 1. 使用RESTful API
- 2. 如何在RESTful API中使用OpenID?
- 3. 如何使用獵鷹的RESTful API
- 4. 如何使用Java servlet創建RESTful API?
- 5. 我該如何使用Auth0與RESTful API?
- 6. 在Rails中,你如何使用Haml使用RESTful控制器?
- 7. 在Android中使用RESTful API
- 8. 使用RESTful api與骨幹
- 9. 使用RESTful API - 安全嗎?
- 10. 使用RESTful API異步上傳文件使用Angular,ng-file-upload使用RESTful API
- 11. 如何在RESTful API中
- 12. 如何創建Yii2 RESTful API
- 13. 如何記錄RESTful API?
- 14. 你如何使用竹REST API
- 15. 如何使用Python編寫「Hello World」RESTful API然後使用它
- 16. Restful API:如何安全地訪問api?
- 17. 使用RestSharp來使用RESTful API
- 18. 如何在任何python框架中使用python flask RESTful api
- 19. RESTful如何使用PHP?
- 20. 如何使用RESTful Geoserver?
- 21. 如何使用JavaScript顯示從RESTful API調用返回的JSON
- 22. 如何使用Firebase RESTful API對用戶進行身份驗證?
- 23. 使用Django-tastypie用於非RESTful API
- 24. 在Zend Framework中創建一個Restful API時,你可以使用模塊嗎?
- 25. 如何使用Visual Studio 2017從swagger文檔中生成restful api
- 26. 如何使用HTTP方法來路由真正的CRUD RESTful API
- 27. 如何使用CodeIgniter在RESTful API中發送帖子值?
- 28. 如何在restful java api(JAX-RS,Jersey)中使用mysql db?
- 29. 如何在我的Java RESTful API中使用Zapier
- 30. 如何部署使用節點js創建的RESTful api
我會說可以編寫/使用爲特定超文本應用程序編寫的庫,例如AtomPub – Mike 2010-11-01 14:04:25
@Mike是的,如果這個庫是爲HTTP上的特定協議編寫的,那麼很可能它會在封面下正確使用HTTP,所以你應該是安全的。 – 2010-11-01 14:38:57