我是不熟悉flutter的人,我试图集成到库下面以在flutter项目中使用Swagger。 https://github.com/swagger-api/swagger-codegen/tree/master/samples/client/petstore/dart/swagger
我到目前为止所做的步骤:
1)
added the Path in Pubspec.yaml
swagger:
path: /path/swagger-codegen-master/samples/client/petstore/dart/swagger
2)main.dart文件:
import 'package:swagger/api.dart';
3)在swspec文件中添加了Pubspec.yaml,因此我的项目支持SDK 2.0.0
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"
工作正常问题是:
我可以访问var api_instance = new PetApi();
那是在其中实现的swagger api。
我如何使用我的swagger API的URL,该URL根据我的项目具有完全不同的API。
例如在网址http://petstore.swagger.io/v2
上,但在http://student.swagger.io/v2
上
并具有完整的不同请求,标头和响应参数?
我该如何根据自己的用途对其进行自定义。
答案 0 :(得分:1)
这是我要链接swagger API文件的步骤,
1.使用https://editor.swagger.io为dart生成客户端文件
2.用IOClient()代替了api_client.dart文件对BrowserClient()的使用,并导入了所需的库。此BrowserClient在我的项目中导致生成错误,因为它包含Web依赖项
3.然后创建客户端类以访问如下所示的API,
class Client{
ApiClient _apiClient;
AuthApi _authApi;
AuthApi get authApi => _authApi;
Client(){
_apiClient = ApiClient(
basePath: "http://yourproject.apilink",
);
_authApi=AuthApi(_apiClient);//The generated api
}
}
4.然后
class AuthBloc {
final Client client;
AuthBloc(this.client) {}
Future<User> signIn({
@required String deviceID,
@required String deviceType,
@required String phone,
@required String password,
}) async {
AuthLoginResponse authLoginResponse;
User user;
authLoginResponse = await client.authApi
.authPostLogin(deviceID, deviceType, phone, password);
user = authLoginResponse.payload;
return user;
}}