Flutter通用API集成插件nex_common_api的使用
Flutter通用API集成插件nex_common_api的使用

开始使用
一个用于发送HTTP GET和POST请求的Dart类,支持可选的基于令牌的身份验证和API密钥。
特性
- 支持发送带有可选头部信息的HTTP GET和POST请求。
- 支持基于令牌的身份验证。
- 可以选择在请求中包含API密钥。
安装
在你的pubspec.yaml
文件中添加以下依赖:
dependencies:
nex_common_api: <latest-version>
运行flutter pub get
来安装依赖。
使用方法
导入类
首先,导入必要的包:
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'path_to_api_methods/api_methods.dart';
示例代码
发送GET请求
发送基本的GET请求:
void main() async {
try {
var response = await ApiMethods().getMethod(url: "https://api.example.com/data");
print(response);
} catch (e) {
print("Error: $e");
}
}
带有令牌的GET请求
发送带有身份验证令牌的GET请求:
void main() async {
try {
var response = await ApiMethods().getMethodWithToken(
url: "https://api.example.com/data",
token: "your_token_here"
);
print(response);
} catch (e) {
print("Error: $e");
}
}
发送POST请求
发送基本的POST请求:
void main() async {
try {
var response = await ApiMethods().postMethod(
url: "https://api.example.com/data",
body: jsonEncode({"key": "value"})
);
print(response);
} catch (e) {
print("Error: $e");
}
}
带有令牌的POST请求
发送带有身份验证令牌的POST请求:
void main() async {
try {
var response = await ApiMethods().postMethodWithToken(
url: "https://api.example.com/data",
token: "your_token_here",
body: jsonEncode({"key": "value"})
);
print(response);
} catch (e) {
print("Error: $e");
}
}
完整示例代码
以下是一个完整的示例代码,展示了如何在Flutter应用中使用ApiMethods
类:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:nex_common_api/api_core/api_methods.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'ApiMethods Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
ApiMethods apiMethods = ApiMethods();
String _displayText = '';
void _getData() async {
try {
var response = await apiMethods.getMethod(
url: 'https://jsonplaceholder.typicode.com/posts/1',
);
setState(() {
_displayText = jsonEncode(response);
});
} catch (e) {
setState(() {
_displayText = 'Error: $e';
});
}
}
void _postData() async {
try {
var response = await apiMethods.postMethod(
url: 'https://jsonplaceholder.typicode.com/posts',
body: jsonEncode({'title': 'foo', 'body': 'bar', 'userId': 1}),
);
setState(() {
_displayText = jsonEncode(response);
});
} catch (e) {
setState(() {
_displayText = 'Error: $e';
});
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('ApiMethods Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _getData,
child: Text('GET Data'),
),
ElevatedButton(
onPressed: _postData,
child: Text('POST Data'),
),
SizedBox(height: 20),
Text(
'Response:',
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
),
SizedBox(height: 10),
Expanded(
child: SingleChildScrollView(
child: Padding(
padding: EdgeInsets.all(10),
child: Text(
_displayText,
style: TextStyle(fontSize: 16),
),
),
),
),
],
),
),
);
}
}
更多关于Flutter通用API集成插件nex_common_api的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter通用API集成插件nex_common_api的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
nex_common_api
是一个用于 Flutter 应用的通用 API 集成插件,旨在简化与后端服务的通信。它提供了统一的接口来处理 API 请求、响应、错误处理等,使得开发者可以更高效地集成和管理 API 调用。
主要功能
- 统一的 API 请求管理:简化 HTTP 请求的发送与接收。
- 错误处理:自动处理常见的网络错误和 API 错误。
- 缓存支持:支持对 API 响应进行缓存,提升应用性能。
- 请求拦截器:允许在请求发送前或响应接收后进行自定义处理。
- 多环境支持:支持配置不同的 API 环境(如开发、测试、生产)。
安装
在 pubspec.yaml
文件中添加 nex_common_api
依赖:
dependencies:
flutter:
sdk: flutter
nex_common_api: ^1.0.0 # 请根据实际情况替换为最新版本
然后运行 flutter pub get
来安装插件。
基本使用
1. 初始化
在使用 nex_common_api
之前,通常需要先进行初始化配置。例如,设置基 URL 和默认的请求头。
import 'package:nex_common_api/nex_common_api.dart';
void main() {
NexCommonApi.init(
baseUrl: 'https://api.example.com',
defaultHeaders: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_token_here',
},
);
runApp(MyApp());
}
2. 发送 GET 请求
使用 NexCommonApi
发送 GET 请求非常简单:
void fetchData() async {
try {
final response = await NexCommonApi.get('/endpoint');
print('Response: ${response.data}');
} catch (e) {
print('Error: $e');
}
}
3. 发送 POST 请求
发送 POST 请求时,可以传递请求体数据:
void postData() async {
try {
final response = await NexCommonApi.post(
'/endpoint',
data: {
'key': 'value',
},
);
print('Response: ${response.data}');
} catch (e) {
print('Error: $e');
}
}
4. 处理错误
nex_common_api
会自动处理常见的网络错误和 API 错误。你可以通过 try-catch
块来捕获和处理这些错误。
void fetchData() async {
try {
final response = await NexCommonApi.get('/endpoint');
print('Response: ${response.data}');
} on NexApiException catch (e) {
print('API Error: ${e.message}');
} catch (e) {
print('Unexpected Error: $e');
}
}
5. 使用拦截器
你可以添加请求和响应拦截器来进行自定义处理,例如添加认证信息或记录日志。
NexCommonApi.addRequestInterceptor((request) {
// 在请求发送前添加自定义逻辑
request.headers['Custom-Header'] = 'value';
return request;
});
NexCommonApi.addResponseInterceptor((response) {
// 在响应接收后添加自定义逻辑
print('Response received: ${response.data}');
return response;
});
6. 多环境配置
nex_common_api
支持多环境配置,你可以根据不同的环境设置不同的基 URL。
void configureApiEnvironment(Environment environment) {
switch (environment) {
case Environment.development:
NexCommonApi.init(baseUrl: 'https://dev.api.example.com');
break;
case Environment.production:
NexCommonApi.init(baseUrl: 'https://api.example.com');
break;
}
}