【Dart】Web API 作成の手順書

はじめに

ウェブAPIの実装は、ビジネスやソフトウェア開発において不可欠なスキルとなりました。今回は、私が実務で使用するために検討したウェブAPIの実装方法についてご紹介します。

実装方法

  • ステップ1: HTTPメソッドの決定

まず、あなたのAPIがPOSTメソッドを使用するのか、それともGETメソッドを使用するのかを確認します。
指定のWebAPIがそもそも特定のメソッドしか受け付けない、ということがあります。

  • ステップ2: URLの構築

次に、引数やパラメータを直接URLに入力します。これにより、具体的なURLが作成され、そのURLが正常に動作するかを確認できます。

final endPoint = '${_baseUrl}test?id=1&name=2';
  • ステップ3: パラメータの分解と変換

ここでは、各パラメータを一つずつ細分化します。そして、これらを外部から引数として渡すようにします。
分解した各パラメータを引数またはパラメータに変換します。このプロセスは全てのパラメータが変換されるまで繰り返します。
パラメータを変換する毎に、動作するか確認します。そのことで、パラメータに問題があったらすぐに分かります。

Get-1

void register(int id, String name){
     final endPoint = '${_baseUrl}test/id=1&name=2';
     final uri = Uri.parse(endPoint);

    final response = await _client.get(uri);
}

Get-2

void register(int id, String name){
     final endPoint = '${_baseUrl}test';
     final uri = Uri.parse(endPoint).replace(queryParameters: {
      'id': '1',
      'name': '2',
    });

    final response = await _client.get(uri);
}

Get-3

void register(int id, String name){
     final endPoint = '${_baseUrl}test';
     final uri = Uri.parse(endPoint).replace(queryParameters: {
      'id': id.toString(),
      'name': '2',
    });

    final response = await _client.get(uri);
}

Get-4

void register(int id, String name){
     final endPoint = '${_baseUrl}test';
     final uri = Uri.parse(endPoint).replace(queryParameters: {
      'id': id.toString(),
      'name': name,
    });

    final response = await _client.get(uri);
}

Post-1

void register(int id, String name){
    final endPoint = '${_baseUrl}test';
    final response = await _client.post(
      Uri.parse(endPoint),
      headers: {'Content-Type': 'application/json'},
      body: jsonEncode({'id': '1', 'name': '2'}),
    );
}

Post-2

void register(int id, String name){
     	final endPoint = '${_baseUrl}test';
        final response = await _client.post(
          Uri.parse(endPoint),
          headers: {'Content-Type': 'application/json'},
          body: jsonEncode({'id': id.toString(), 'name': '2'}),
        );
}

Post-3

void register(int id, String name){
     	final endPoint = '${_baseUrl}test';
        final response = await _client.post(
          Uri.parse(endPoint),
          headers: {'Content-Type': 'application/json'},
          body: jsonEncode({'id': id.toString(), 'name': name}),
        );
}
  • ステップ5: テストの実行

すべてのパラメータを引数に変換したら、実際にテストを行い、APIが正常に動作することを確認します。可能であれば、この段階でユニットテストも作成します。

まとめ :

以上が、私が考えるウェブAPIの実装方法になります。これを基に、私自身も実際の作業を進めてますが、どうしてもパラメータをいくつか同時に変換してしまいますよね。
過程は難しくないですが、あとでgetとpostの書き方、どうだっけ?となるので、メモしておきます。
WebAPIの実装は、はじめると何度も出てくるプロセスです。紹介したステップが、皆さんもWebAPIの実装に役にたてば幸いです。