ez_http: 我的第一個Flutter Package

ez_http 是一個基於 http package 的輕量級的 Flutter HTTP Package,提供簡單易用,且十分直觀的 HTTP Request功能。

首先,來個簡單的介紹

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,如果不是有特別的需求,來來去去都是那些,那為什麼不能有個簡單的套件,讓我們可以快速上手呢?

那麼,作為一個懶惰的追求效率的開發者,我希望能夠:

  1. 簡化 HTTP 請求的程式碼
  2. 減少重複的樣板程式碼
  3. 擁有直覺的 API
  4. 快速上手,不需要花太多時間學習

而這就是為什麼我開發了 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 功能,未來希望能夠加入更多功能,比如:

  1. 加入更多請求方法,例如 PATCH, OPTIONS, HEAD 等等
  2. 加入更多錯誤處理機制,例如 timeout, 404, 500 時可以調用特定的 function
  3. 其他更多功能,還是歡迎大家到 GitHub 給我意見,或是貢獻程式碼

說到底,ez_http 的宗旨就是簡單,快速,直觀,易用。

任何偏離這個宗旨的,我都不會加進去 歡迎大家一起來監督我。畢竟,需要更強大的功能,還是有很多其他選擇。

而且,再度重申,我真的是一個很懶惰的追求效率的開發者,能夠少寫一點程式碼,就少寫一點。

結語

開發 Flutter Package 還蠻有趣的,未來有機會,我還會繼續開發更多有趣的 Package,跟大家分享。

如果你也覺得寫 HTTP 請求很麻煩,不妨立即試試看這個 Package: ez_http

最後,再次感謝大家看到這裡,如果 ez_http 對你有幫助,歡迎到 GitHub 給我一個星星,或是貢獻程式碼,讓 ez_http 變得更好用!

Built with Hugo
主題 StackJimmy 設計