with-cors
fandhe-backend の CORS プラグイン(cors feature)の 2 層配線だけを見せる 最小サンプルです。独立して cargo run できる standalone crate として examples/with-cors/ に切り出されています。
何を見せるサンプルか
GET/POST /todosの最小 ToDo API(Arc<RwLock<Vec<Todo>>>共有状態)- CORS の 2 層配線:
Router::options_fallbackへfandhe_backend_core::plugin_cors::preflight_responseを 配線し、プリフライト(OPTIONS+Origin+Access-Control-Request-Method)を 完結させるServer::cors(CorsConfig)を登録し、実リクエストへAccess-Control-Allow-Origin等のヘッダを付与する
CORS 以外の feature(compression / static / openapi 等)は焦点外のため有効化して いません(pay-for-what-you-use。複数 feature を組み合わせた実運用形の雛形は templates/app を参照してください)。
起動方法
cd examples/with-cors
cargo run既定で 127.0.0.1:3000 に bind します(PORT 環境変数で上書き可能)。
検証 curl 例
# プリフライト(204 + Access-Control-Allow-* を確認)
curl -si -X OPTIONS http://127.0.0.1:3000/todos \
-H 'Origin: https://app.example.com' \
-H 'Access-Control-Request-Method: POST'
# 実リクエスト(許可オリジン、Access-Control-Allow-Origin 付与を確認)
curl -si http://127.0.0.1:3000/todos -H 'Origin: https://app.example.com'GitHub 上の実体
コード全文・詳細な README は examples/with-cors/ を参照してください。