Dart Frog backend 를 최소한으로 사용하기 (with Fastapi)
- Dart Frog - 프로그램 로직을 API로 제공Dart로 작성된 프로그램 로직을 그대로 활용.
- REST API로 노출(보안을 위해 인증을 거친 FastAPI 에서만 호출)
- FastAPI - 인증 & API 게이트웨이 역할JWT / OAuth 기반 인증 관리
- Dart Frog API를 호출하여 인증된 사용자에게만 로직 제공
- Flutter 앱 - 사용자의 앱FastAPI만 호출
간단한 예시 구현
Frog 내 api 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
// routes/calculate.dart
import 'package:dart_frog/dart_frog.dart';
int complexCalculation(int x) => x * x + 10;
Response onRequest(RequestContext context) async {
final query = context.request.uri.queryParameters;
final value = int.tryParse(query['value'] ?? '0') ?? 0;
final result = complexCalculation(value);
return Response.json(body: {'result': result});
}
FastAPI 에서 인증 처리 후 Dart Frog API 호출
1
2
3
4
5
6
7
8
9
10
11
12
13
import requests
from fastapi import FastAPI, Depends
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
@app.get("/compute")
def compute(value: int, token: str = Depends(oauth2_scheme)):
# 인증된 사용자만 Dart Frog API 호출 가능
response = requests.get(f"http://dart-frog-server/calculate?value={value}")
return response.json()
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
