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