forked from loafle/openapi-generator-original
* fix runtime deserialisation * add security support for dart dio * regenerate dart dio sample * update dio pubspec.mustache deps * check response type before parsing * add default dateTime serializer * regenerate sample
82 lines
2.6 KiB
Dart
82 lines
2.6 KiB
Dart
library openapi.api;
|
|
|
|
import 'package:dio/dio.dart';
|
|
import 'package:built_value/serializer.dart';
|
|
import 'package:openapi/serializers.dart';
|
|
import 'package:openapi/auth/api_key_auth.dart';
|
|
import 'package:openapi/auth/basic_auth.dart';
|
|
import 'package:openapi/auth/oauth.dart';
|
|
import 'package:openapi/api/pet_api.dart';
|
|
import 'package:openapi/api/store_api.dart';
|
|
import 'package:openapi/api/user_api.dart';
|
|
|
|
|
|
final _defaultInterceptors = [OAuthInterceptor(), BasicAuthInterceptor(), ApiKeyAuthInterceptor()];
|
|
|
|
class Openapi {
|
|
|
|
Dio dio;
|
|
Serializers serializers;
|
|
String basePath = "http://petstore.swagger.io/v2";
|
|
|
|
Openapi({this.dio, Serializers serializers, String basePathOverride, List<Interceptor> interceptors}) {
|
|
if (dio == null) {
|
|
BaseOptions options = new BaseOptions(
|
|
baseUrl: basePathOverride ?? basePath,
|
|
connectTimeout: 5000,
|
|
receiveTimeout: 3000,
|
|
);
|
|
this.dio = new Dio(options);
|
|
}
|
|
|
|
if (interceptors == null) {
|
|
this.dio.interceptors.addAll(_defaultInterceptors);
|
|
} else {
|
|
this.dio.interceptors.addAll(interceptors);
|
|
}
|
|
|
|
this.serializers = serializers ?? standardSerializers;
|
|
}
|
|
|
|
void setOAuthToken(String name, String token) {
|
|
(this.dio.interceptors.firstWhere((element) => element is OAuthInterceptor, orElse: null) as OAuthInterceptor)?.tokens[name] = token;
|
|
}
|
|
|
|
void setBasicAuth(String name, String username, String password) {
|
|
(this.dio.interceptors.firstWhere((element) => element is BasicAuthInterceptor, orElse: null) as BasicAuthInterceptor)?.authInfo[name] = BasicAuthInfo(username, password);
|
|
}
|
|
|
|
void setApiKey(String name, String apiKey) {
|
|
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor, orElse: null) as ApiKeyAuthInterceptor)?.apiKeys[name] = apiKey;
|
|
}
|
|
|
|
|
|
/**
|
|
* Get PetApi instance, base route and serializer can be overridden by a given but be careful,
|
|
* by doing that all interceptors will not be executed
|
|
*/
|
|
PetApi getPetApi() {
|
|
return PetApi(dio, serializers);
|
|
}
|
|
|
|
|
|
/**
|
|
* Get StoreApi instance, base route and serializer can be overridden by a given but be careful,
|
|
* by doing that all interceptors will not be executed
|
|
*/
|
|
StoreApi getStoreApi() {
|
|
return StoreApi(dio, serializers);
|
|
}
|
|
|
|
|
|
/**
|
|
* Get UserApi instance, base route and serializer can be overridden by a given but be careful,
|
|
* by doing that all interceptors will not be executed
|
|
*/
|
|
UserApi getUserApi() {
|
|
return UserApi(dio, serializers);
|
|
}
|
|
|
|
|
|
}
|