import 'package:dio/dio.dart';
class CustomDio {
static final CustomDio _instance = CustomDio._internal();
final Dio _dio = Dio();
CustomDio._internal() {
_dio.options.baseUrl = "http://52.79.115.43:8090"; // API 주소 설정
// 기타 Dio 객체 설정
}
factory CustomDio() {
return _instance;
}
Dio get dio => _dio;
}
import 'package:dio/dio.dart';
import 'package:get/get.dart';
import 'package:secret_cat_app/model/user.dart';
import 'package:secret_cat_app/util/api_routes.dart';
import 'package:secret_cat_app/util/custom_dio.dart';
class UserController extends GetxController {
final Rxn<List<User>> _users = Rxn<List<User>>();
final customDio = CustomDio();
List<User>? get users => _users.value;
user() async {
try {
var res = await customDio.dio.get(
ApiRoutes.user,
);
if (res.statusCode == 200) {
var data = List<Map<String, dynamic>>.from(res.data['items']);
_users(data.map((e) => User.fromMap(e)).toList());
}
} on DioError catch (e) {
print(e.message);
}
}
void onInit() {
super.onInit();
user();
}
}
pubspec.yaml
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
get: ^4.6.5
dio: ^5.0.1
font_awesome_flutter: ^10.4.0
shared_preferences: ^2.0.18
assets:
- assets/images/
fonts:
- family: neo
fonts:
- asset: assets/fonts/neo.ttf
main.dart
login_page.dart
sign_up_page.dart
main_page.dart
secret_page.dart
setting_page.dart
upload_page.dart
users_page.dart
app_image.dart
custom_text_field.dart
menu_tile.dart
profile.dart
secret.dart
user.dart
api_routes.dart
custom_dio.dart
pages.dart
routes.dart
auth_controller.dart
login_controller.dart
secret_controller.dart
sign_up_controller.dart
upload_controller.dart
user_controller.dart
pubspec.yaml