포스트

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()

sticker

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.