首先,來個簡單的介紹
ez_http 是一個基於 http
Package 的輕量級的 Flutter HTTP Package,提供簡單易用,且十分直觀的 HTTP Request功能。
主要提供 GET, POST, PUT, DELETE 等請求,並且可以很方便的處理 JSON 格式的資料。
什麼,你說還有其他?很抱歉,目前只有這些 歡迎大家在 GitHub 給我意見,或是貢獻程式碼,讓 ez_http 變得更好用!
為什麼要寫這個Package
各位可能會覺得奇怪,為什麼我要寫一個這麼簡單的 Package?這不是套上套嗎
畢竟,Flutter 官方的 http package 已經很強大,而且功能也很完整。加上,還有許多第三方套件可以選擇,例如 dio 等等。
這就要從我自己的開發經驗說起了,在開發 Flutter 專案時,經常需要處理 HTTP 請求,畢竟要從後端 API 取得資料,或是上傳資料到後端嘛。
雖然現有的 http package 很多,功能也很完整,但總覺得還是有些不夠直覺,或是需要寫太多樣板程式碼。
說真的,關於 http,如果不是有特別的需求,來來去去都是那些,那為什麼不能有個簡單的套件,讓我們可以快速上手呢?
那麼,作為一個懶惰的追求效率的開發者,我希望能夠:
- 簡化 HTTP 請求的程式碼
- 減少重複的樣板程式碼
- 擁有直覺的 API
- 快速上手,不需要花太多時間學習
而這就是為什麼我開發了 ez_http,一個輕量級的 Flutter HTTP Package。
ez_http 怎麼用?
你說簡單?那到底有多簡單?
讓我用GET 跟 POST 演示一下吧
HTTP Get 請求
import 'package:ez_http/ez_http.dart'; void main() async { final response = await EasyHttp.get('https://api.example.com/users'); print(response.body); }
HTTP Post 請求
import 'package:ez_http/ez_http.dart'; void main() async { final response = await EasyHttp.post( 'https://api.example.com/users', body: {'name': 'John Doe', 'email': '[email protected]'}, responseBodyType: ResponseBodyType.json, contentType: ContentType.json, ); print(response.statusCode); print(response.body); }
沒錯,無論你要傳 json
格式,或是 form-data
格式,他都可以處理。contentType
中選擇你要的格式,剩下的就交給 ez_http 吧!
什麼,你說回傳的資料是json?不用擔心,ez_http 也幫你處理好了,只要在 responseBodyType
中選擇你要的資料型態,他都會幫你 jsonDecode
喔!
開發心得
這是我第一次開發 Flutter Package,正如我在 第一篇:屬於自己的部落格和Infinverse的由來 所說,我是一個很跳脫的開發者,總是忽然想到什麼就去做什麼,所以這次開發 Package 也是一樣。忽然想到,又想做,那就弄吧~
希望這個 Package 也能幫助到其他像我一樣懶惰的追求效率的 Flutter 開發者,讓大家在處理 HTTP 請求時能更加輕鬆。
未來的計畫
目前 ez_http 已經有基本的 GET, POST, PUT, DELETE 功能,未來希望能夠加入更多功能,比如:
- 加入更多請求方法,例如 PATCH, OPTIONS, HEAD 等等
- 加入更多錯誤處理機制,例如 timeout, 404, 500 時可以調用特定的 function
- 其他更多功能,還是歡迎大家到 GitHub 給我意見,或是貢獻程式碼
說到底,ez_http 的宗旨就是簡單,快速,直觀,易用。
任何偏離這個宗旨的,我都不會加進去 歡迎大家一起來監督我。畢竟,需要更強大的功能,還是有很多其他選擇。
而且,再度重申,我真的是一個很懶惰的追求效率的開發者,能夠少寫一點程式碼,就少寫一點。
結語
開發 Flutter Package 還蠻有趣的,未來有機會,我還會繼續開發更多有趣的 Package,跟大家分享。
如果你也覺得寫 HTTP 請求很麻煩,不妨立即試試看這個 Package: ez_http。
最後,再次感謝大家看到這裡,如果 ez_http 對你有幫助,歡迎到 GitHub 給我一個星星,或是貢獻程式碼,讓 ez_http 變得更好用!