OpenApi Client Generator
OpenApi Client Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec.
This library is under development, any help is welcome
The package is written only in dart, other dependencies will not be needed
You can use this package from the command line or by writing a script in dart
Command Line
You can run the generator with the command below
dart run open_api_client_generator \
--input=http://0.0.0.0:8080/api/v1/swagger/open_api.yaml \
--output-folder=lib/api \
--client=dio \
--data=json_serializable
For all usable parameters use the --help
flag
Script
You can also use this package by creating a dart script, here is an example:
import 'package:open_api_client_generator/open_api_client_generator.dart';
void main() async {
await generateApi(
options: Options(
input: Uri.parse('http://0.0.0.0:8080/api/v1/swagger/open_api.yaml'),
outputFolder: 'lib/api',
),
clientCodec: const DioClientCodec(),
serializationCodec: const JsonSerializableSerializationCodec(),
);
}
Arguments
Several http clients, serializers and more are supported.
Client
CommandLine | Dart Class | package | Description |
---|---|---|---|
--client=abstract | AbstractClientCodec | Generate an abstract client | |
--client=dart | DartClientCodec | Generate a client that does not use external libraries | |
--client=http | HttpClientCodec | http | Generate a client that uses the http library |
--client=dio | DioClientCodec | dio | Generate a client that uses the dio library |
Serialization
CommandLine | Dart Class | package | Description |
---|---|---|---|
--serialization=json_serializable | JsonSerializableSerializationCodec | json_serializable | Generate serialization use the json_serializable package |
--serialization=built_value | BuiltValueSerializationCodec | built_value | Generate serialization use the built_value package |
Collection
CommandLine | Dart Class | package | Description |
---|---|---|---|
--collection=dart | DartCollectionCodec | Use List an Map from dart core | |
--collection=fast_immutable_collection | FastImmutableCollectionCodec | fast_immutable_collection | Instead of List and Map use IList and IMap |
--collection=built_collection | BuiltCollectionCodec | built_collection | Instead of List and Map use BuiltList and BuiltMap |
Plugins
CommandLine | Dart Class | package | Description |
---|---|---|---|
--plugins=mek_data_class | MekDataClassPlugin | mek_data_class | Generates data classes with Data Class annotation, implements toString and equals |
More
shelf_open_api The purpose of this library is to expose the generation of file with open api specifications from your shelf controllers