[AngularDart] HttpClient
當需要呼叫 API 時,該如何處理? Angular 有 HttpClient 可以使用,那 AngularDart 呢? 好家在的是 Dart 有 http 的 library 可以使用,只要在 pubspec.yaml 裡面加上 http: ^0.11.0 的 package,再調整一下程式碼,就可以呼叫 API 了
設定
設定 HTTP Service 的方式很簡單,只要在 main.dart 做一下設定即可完成
1 | import 'package:angular/angular.dart'; |
- 如果在 VSCode 上面開發時,
self.injector$Injector會出現紅色底線,但是在編譯時卻不會發現任何錯誤,主要的原因是因為main.template.dart會在編譯時產出,那時候就不會有任何錯誤
使用
1 | import 'dart:convert'; |
- 在
constructor的地方注入Client(需 importpackage:http/http.dart) http.get會回傳Future<Response>的資料,可以透過.then的方式做後續的處理json.decode可以做 JSON 文字轉為物件的動作,(來源:dart:convert)- 記得要處理 Exception
Send data
1 | static final _headers = {'Content-Type': 'application/json'}; |
Http Client 介面
BrowserClient 常用的方法有
- get(dynamic url, { Map<String, String> headers }) → Future
- post(dynamic url, { Map<String, String> headers, dynamic body, Encoding encoding }) → Future
- put(dynamic url, { Map<String, String> headers, dynamic body, Encoding encoding }) → Future
- patch(dynamic url, { Map<String, String> headers, dynamic body, Encoding encoding }) → Future
- delete(dynamic url, { Map<String, String> headers }) → Future
- head(dynamic url, { Map<String, String> headers }) → Future