DEV Community 日本語
フォロー
小さなNimマイクロサービス、3つの実際のバグ、そしてそれらが私自身のMummy Forkについて教えてくれたこと
著者はポートフォリオウェブサイトのメッセージ処理のために、POST /api/contactエンドポイントを構築しました。
彼らは、OpenAPIスキーマ生成と型付き検証を含むMummyフォークを使用しました。
このエンドポイントは、名前、メールアドレス、メッセージを受け付け、存在、型、長さ、メール形式の検証を行います。
検証中のエラーは400レスポンスを返し、送信失敗の可能性は汎用的な500を返します。
追加のミドルウェアには、CORS処理、インメモリレートリミッター、ロギングが含まれます。
当初はSMTPを予定していましたが、Renderの無料ティアにおけるアウトバウンドSMTPポートの制限により、サービスはResendのREST APIに変更されました。
予期せぬ3つのバグが発生しました。エイリアス化されたstd/httpcoreインポートによる型不一致、論理的に不変なグローバル変数におけるgcsafeコンパイラの問題、そしてプリフライトリクエストのミドルウェア実行を妨げる未登録のOPTIONSルートです。
それぞれのバグは、フォークの内部動作、Nimのモジュールシステム、スレッドセーフプログラミングに関する貴重な洞察を提供しました。
著者は、これらの問題はNimの機能とMummyフレームワークの交差点に特有のものであることを強調しています。
完全な実装の詳細とデプロイメントスクリプトは、プロジェクトのリポジトリで入手可能です。