Laravel

【PHP】Enumの使い方|PHP 8.1の新機能とLaravelでの実践的な活用法

PHP 8.1 で導入された enum(列挙型)は、有限の選択肢を型として表現するための仕組みです。本記事では enum の基本から Laravel でのキャスト・バリデーションまでを整理します。コード例は PHP 8.1 以降、La ...

Laravel

【Laravel】Middlewareの自作方法|認証・ロギング・APIキー検証の実装パターン
はじめに

Laravel のルート処理には、認証チェックやログ出力、API キー検証など、多くの HTTP リクエストで共通する処理があります。これらをコントローラやトレイトに散らすと重複が増え、適用順の取り違えも起きやすくなります。ミ ...

Laravel

【Laravel】Form Requestによるバリデーション設計|authorize・rules・カスタムエラーメッセージ

Laravel のコントローラに $request->validate() を直接書くと、ルールが増えるほどメソッドが長くなります。権限チェックと入力検証も混ざりやすくなります。Form Request は、認可(authori ...

Thousand API

AIエージェントにHMAC署名検証をさせてはいけない理由|セキュリティの「確実性の穴」を埋めるMCP設計
はじめに

MCP(Model Context Protocol)は、Cursor や Claude などのエージェントが DB 更新や API 呼び出しなどのツールをプロンプト経由で実行するための仕組みです。Webhook の HMAC ...

Thousand API

Thousand APIのNext.js製フロントエンドをどう作ったか|App Router・TypeScript・Stripe連携の設計
はじめに

個人開発の MCP サーバー「Thousand API」では、ドキュメント閲覧、プラン選択、API Key の発行・管理を Web フロントエンドで担っています。MCP(Model Context Protocol)は、Cla ...

AWS

【AWS】S3のライフサイクルポリシー設定ガイド|ストレージクラス移行・自動削除の実践
はじめに

S3 バケットにログやバックアップ、一時ファイルを置き続けると、オブジェクト数と容量が増え、ストレージ料金が積み上がります。手動で古いファイルを削除したり、ストレージクラスを変更したりする運用は、バケットが増えるほど負担になり ...

AWS

【AWS】Lambda + API Gatewayでサーバーレスなエンドポイントを作る|Node.js・デプロイ・コールドスタート対策
はじめに

「小さな API をサーバーなしで公開したい」「EC2 やコンテナの運用コストを抑えたい」といった場面で、AWS Lambda と API Gateway の組み合わせはよく検討されます。HTTP リクエストを受け取り、Lam ...

Thousand API

Lambda + S3インメモリ検索で郵便番号APIを作った話【OpenSearch不要・月額ほぼ0円】

TL;DR日本郵便の公式CSVデータ(約12万件)をS3に置き、Lambda起動時にメモリに展開
インメモリで中間一致検索を実現(OpenSearch不要)
コールドスタート約1〜2秒、ウォームスタート数ms
月額 ...

PHP

【PHP】match式とswitch文の違いと使い分け|PHP 8.0の新機能を実務で解説

PHP 8.0 で導入された match 式は、値の一致に応じて結果を返す構文です。本記事では match 式と従来の switch 文の違い、実務での使い分け、注意点を整理します。コード例は PHP 8.0 以降を前提とします。詳細 ...

PHP

【PHP】Fiberの使い方|非同期処理・コルーチンの基本を実例で理解する

PHP 8.1 で導入された Fiber(ファイバー)は、非同期処理の話題でよく名前が挙がります。本記事では Fiber の基本 API、Generator との違い、複数 Fiber を束ねる最小のスケジューラ例、そしてはまりどころ ...