Watch-IP

Flutter 및 Dart에서 Watch-IP 사용하기

watch_ip_sdk(pub.dev, v0.1.2)는 Flutter 앱과 일반 Dart용으로 GET /v1/geo를 감싸며, 표준 라이브러리만 사용하는 클라이언트 대신 package:http를 기반으로 만들어져 Flutter web에서도 동작합니다.

설치

Dart 3.0 이상 / 현재 안정적인 Flutter 채널이 필요합니다. package:http에 의존합니다 — dart:io의 HttpClient를 Flutter web에서 사용할 수 없기 때문에, 다른 SDK들의 무의존성 방식에서 의도적으로 예외를 둔 것입니다.

Flutter

flutter pub add watch_ip_sdk

빠른 시작

실제 브라우저 탭에서 실행되는 Flutter web 빌드는 자체적으로 Origin을 올바르게 전송합니다. 네이티브 iOS/Android/데스크톱 빌드나 서버에서 실행되는 일반 Dart는 그렇지 않으므로, 이 경우에는 origin을 명시적으로 전달하세요. 이 SDK는 공개 가능 키만 필요로 합니다 — 배포된 앱에는 절대 시크릿 키를 포함하지 마세요.

Dart

import 'package:watch_ip_sdk/watch_ip_sdk.dart';

final client = WatchIP('wip_pub_xxxxxxxx');
final geo = await client.getGeo();

print('${geo.country} ${geo.city} ${geo.timezone}');

오류 처리와 타임아웃

모든 실패는 status와 안정적인 code를 가진 WatchIPError를 던집니다. timeout 이내에 완료되지 않은 요청은 code가 network_error인 오류를 던집니다.

Dart

try {
  final geo = await client.getGeo(timeout: const Duration(seconds: 5));
} on WatchIPError catch (e) {
  print('${e.code} ${e.status} ${e.message}');
}

이 SDK가 지원하지 않는 것

이 패키지는 GET /v1/geo만 호출합니다. IP 조회, 이메일 검증, 위험도 확인에 대한 Dart 클라이언트는 아직 없습니다 — 이 엔드포인트들은 시크릿 키가 필요하므로 앱 자체가 아니라 반드시 자체 백엔드에서 package:http로 직접 호출하세요. 인증 가이드를 참고하세요.

관련 페이지