- C# TryParseで文字列を安全に数値へ変換する
テキストボックスやCSVから受け取った値は文字列です。数値として使いたい場合、int.Parseは変換できない入力で例外を投げます。入力が誤っていることを通常の分岐として扱うなら、TryParseが向...
- PostgreSQL 外部キーで存在しない親IDを防ぐ
注文の明細が、存在しない注文IDを参照するとデータの意味が分からなくなります。アプリケーションで事前確認しても、確認後に別の処理が親を削除する可能性があります。外部キーを設定し、データベースでも関係を...
- ASP.NET Coreで一覧APIにページングを付ける
商品が増えたあとも一覧APIが全件を返すと、転送量と画面の表示時間が増えます。最初はpageとpageSizeを受け取るページングが分かりやすい方法です。このActionは[ApiController...
- React useRefで入力欄にフォーカスを当てる
入力フォームを開いた直後や、入力エラーが出たときに、特定の入力欄へフォーカスしたいことがあります。DOMの要素自体を参照するにはuseRefを使います。currentは初回描画中などにnullになり得...
- TypeScript ジェネリクスで引数と戻り値の型をつなぐ
同じ処理を文字列と数値の両方に使いたいとき、引数をanyにすると戻り値の型も分からなくなります。ジェネリクスを使うと「受け取った型と返す型が同じ」という関係を表せます。Tは関数を呼ぶときに決まる型です...
- PostgreSQLで複数の更新をトランザクションにまとめる
注文を登録するとき、注文本体と明細を別々に保存すると、途中で失敗して片方だけ残る可能性があります。両方を1つの操作として扱いたい場合はトランザクションを使います。BEGINからCOMMITまでの変更を...
- ASP.NET CoreでAPIのHTTPステータスを使い分ける
APIのレスポンスは本文だけでなく、HTTPステータスでも結果を伝えます。すべてを200 OKにすると、利用側が成功・失敗を本文から独自に判定する必要があります。見つかった取得は200 OK、対象がな...
- ASP.NET Coreでリクエストの入力値を検証する
APIがJSONを受け取れても、その値が処理に使えるとは限りません。商品名が空、価格が負の値といった入力を、保存前に検証します。[ApiController]を付けたControllerでは、モデル検...
- ASP.NET CoreでURLとJSONから値を受け取る
APIでは、対象のID、検索条件、登録するデータを別の場所から受け取ります。ASP.NET Coreでは[FromRoute]、[FromQuery]、[FromBody]で入力元を明示できます。GE...
- React useEffectの後片付けでイベント登録を解除する
画面の幅が変わったときに表示を更新したい場合、ブラウザのresizeイベントを登録できます。登録したままにすると、コンポーネントが不要になったあとも処理が残るため、useEffectの後片付けを用意し...