技術ブログ

プログラミング、IT関連の記事中心

FlutterでRestAPIを実行する方法(GET通信)

目次

RestAPIとは

「RestAPI」は「RESTful API」とも言います。
RESTアーキテクチャスタイルに従い、Webサービスとの対話を可能にするAPIです。
RESTは「REpresentational State Transfer」の略です。

事前準備

pubspec.yaml」に以下の記載を追加する。

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2

  # ====以下を追加====
  http: ^0.13.5

RestAPIの実行

funcName」の中がRestAPIの実行箇所です。
GET通信のサンプルを記載しています

import 'dart:async';
import 'package:http/http.dart' as http;

class ClassName {
  ClassName();

  void funcName() {
    try {
      var response = await http.get(Uri.parse("https://example.com/hoge"));
      var jsonResponse = _response(response);

      // HTTPステータスの出力
      print('Response status: ${response.statusCode}');
      // APIのレスポンスを出力
      print('Response body: ${response.body}');
    } catch (e) {
      throw (e);
    }
  }

  dynamic _response(http.Response response) {
    switch (response.statusCode) {
      case 200:
        var responseJson = response.body;
        // var responseJson = jsonDecode(response.body);
        return responseJson;
      case 400:
        // 400 Bad Request : 一般的なクライアントエラー
        throw Exception('一般的なクライアントエラーです');
      case 401:
        // 401 Unauthorized : アクセス権がない、または認証に失敗
        throw Exception('アクセス権限がない、または認証に失敗しました');
      case 403:
        // 403 Forbidden : 閲覧権限がないファイルやフォルダ
        throw Exception('閲覧権限がないファイルやフォルダです');
      case 500:
        // 500 何らかのサーバー内で起きたエラー
        throw Exception('何らかのサーバー内で起きたエラーです');
      default:
        // それ以外の場合
        throw Exception('何かしらの問題が発生しています');
    }
  }
}