Tag
api
API 実装や外部連携の設計で、詰まりやすいポイントを中心に扱っています。
Latest
最近の記事から読む
新しく追加した記事から、このタグの話題をたどれます。
PHPで有効期限付き共有リンクを設計する(URLを知られただけではダウンロードさせない) PHPで有効期限付きの共有リンクを設計する。random_bytes(32)のトークンは共有の識別までに限定し、ダウンロードの可否はOTP検証済みセッションへのグラントに束ねる。URLが漏れても本人確認なしでは取れない設計をテスト付きで示す。Related
関連タグ
同じ記事に出てきやすいテーマをまとめています。
Posts
api の記事一覧
このタグが付いた記事を、新しい順に並べています。
-
PHPで有効期限付き共有リンクを設計する(URLを知られただけではダウンロードさせない)
PHPで有効期限付きの共有リンクを設計する。random_bytes(32)のトークンは共有の識別までに限定し、ダウンロードの可否はOTP検証済みセッションへのグラントに束ねる。URLが漏れても本人確認なしでは取れない設計をテスト付きで示す。
-
PHPでアップロードファイルをdocroot外に保存し直リンクを塞ぐ(fail-closed設計)
PHPでアップロードファイルをdocroot外に保存し、URL直打ちでの漏洩を防ぐ最小構成。拡張子なしランダム名、公開領域なら書かないfail-closed、取り出し時の許可リスト検証をテスト付きで示す。
-
PHPで大容量ファイルを安全にストリーミング配信する
PHPで数百MBのファイルをメモリ安全にダウンロード配信する最小構成。freadループで確保メモリを一定に保つ実装、長さとファイル名のヘッダ設計、日本語名を壊さないRFC 5987、CLIでの確認手順までを示す。
-
PHPでワンタイム認証キー(OTP)を自作する(HMAC + pepper + 原子的UPDATE)
PHPで6桁のワンタイム認証キーを自作する最小構成。random_intでの生成、DBにはHMAC-SHA256+pepperのハッシュだけを保存、試行回数の上限を原子的UPDATEで安全に数える設計をテスト付きで示す。
-
Slim 4のAPI DTOをfinal readonly classで不変にする(名前付き引数・match・JSON_THROW_ON_ERROR)
Slim 4 の API で、リクエストとレスポンスを final readonly class の DTO にする。名前付き引数とコンストラクタプロモーションで組み立て、match で検証と変換を行い、JSON_THROW_ON_ERROR で返す。
-
選択肢UIに頼らないSlim APIの入力検証(UseCaseで存在チェックして400に変換)
フロントの選択肢に頼らず、Slim 4 の API で入力値を検証する。UseCase 層で存在チェックし、専用例外を Action で 400 の JSON に変換する。
-
Slim 4の例外レスポンスをJSONに統一する(ErrorHandler継承とAPP_ENV出し分け)
Slim 4 で 404・405・500 や Action から投げた例外を、error.code と error.message を持つ JSON 形へ統一する。ErrorHandler を継承して respond() を override し、APP_ENV で詳細を出し分ける。
-
Slim 4を手組み配線でテスト可能にする(DIコンテナなしでHTTPテストを書く)
Slim 4 を DI コンテナなしの手組み配線で起動し、本番とテストで同じ配線を通して DB なしの HTTP テストを書けるようにする。
-
Flutterでdioとinterceptorでトークンリフレッシュを実装する(401で自動更新・再試行)
dioのInterceptorでアクセストークンを付与し、401を受けたらリフレッシュして元のリクエストを再試行、失敗時はログアウトする最小構成をFlutterで作る。
-
Flutterでログイン状態を保持する(JWT + secure storage 最小構成)
Flutterで JWT を secure storage に保存し、ログイン API 呼び出し、起動時復元、ログアウト時の破棄までを最小構成で確認できるようにする。
-
Dart 3のsealed classとパターンマッチングで分岐を安全に書く
Dart 3の sealed class と switch 式のパターンマッチングを使い、API 結果の成功 / 0件 / 未認証 / 通信失敗を型で分けながら安全に分岐する入口を整理する。
-
Flutterでローディング・空状態・エラー表示を整える
Flutterで FutureProvider と AsyncValue を使い、ローディング・空状態・エラー表示を分けながら再試行と共通 UI 化の入口まで確認できるようにする。
-
Flutterでjson_serializable + build_runnerを使ってJSONモデルを型安全に扱う
Flutterで json_serializable と build_runner を導入し、ネストした JSON モデルの fromJson / toJson 自動生成と再生成の運用を最小構成で確認できるようにする。
-
FlutterからREST APIを呼ぶ最小構成(JSON通信 + エラー処理)
Flutter から json-server の REST API を呼び、http パッケージで GET / POST、JSON 変換、エラー処理を最小構成で確認できるようにする。
-
Slim 4 + PostgreSQLで認証付きREST APIを作る(JWT最小構成)
Slim 4 と PostgreSQL を使い、JWT 認証付き REST API の最小構成を register / login / me の 3 本で再現できる。
-
Slim 4で最小JSON APIを作る(routing + DI + error handling)
WSL2とDocker環境でSlim 4の最小JSON APIを作り、正常系と失敗時のJSON応答まで確認する。
-
LaravelでSanctum認証APIを作る
Laravel 13 の fresh app に Sanctum を導入し、login で token を発行して認証付き Book API を作る手順をまとめる。
-
Slim Framework 4 を使った業務Webアプリ導入ガイド(PHP 8.2+)
Laravel経験者向けに、Slim Framework 4で業務Webアプリのバックエンド構成を組み立てる入口を整理する。