VOICEVOXのopenapiを叩く

August 8, 2021

https://github.com/Hiroshiba/voicevox

をFlutterから触りたい。

https://future-architect.github.io/articles/20210511b/

を参考に進める。

1
2
3
4
5
6
7
$ brew install openapi-generator

$ wget https://raw.githubusercontent.com/Hiroshiba/voicevox/main/openapi.json
$ openapi-generator generate -i openapi.json -g dart -o openapi

$ cd openapi
$ flutter pub get
1
2
3
# pubspec.yaml
  openapi:
    path: openapi
1
2
# main.dart
import 'package:openapi/api.dart';

Error: A library can’t opt out of null safety by default, when using sound null safety.

なるほど…Null Safety対応してないのね。

https://aakira.app/blog/2021/05/flutter-open-api/

を参考に仕切り直し。

1
$ openapi-generator generate -i openapi.json -g dart-dio-next -o openapi
1
2
# pubspec.yaml
  dio:
1
2
3
$ cd openapi
$ flutter pub get
$ flutter packages pub run build_runner build --delete-conflicting-outputs
1
2
3
# main.dart

import 'package:openapi/openapi.dart';

Error: Type ‘Uint8List’ not found.

なんと…

1
2
3
# default_api.dart

import 'dart:typed_data';

を追加して逃げた。

1
2
3
4
5
6
# main.dart

  final api =
      Openapi(basePathOverride: dotenv.env['API_BASE_PATH']).getDefaultApi();
  final response = await api.versionVersionGet();
  print(response);

これで無事バージョンが取れた。

flutter: 0.2.0