- 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の後片付けを用意し...
- Reactで兄弟コンポーネントの状態を共有する
検索欄に入力した文字列を、別の一覧コンポーネントでも使いたい場合があります。兄弟同士で別々にstateを持つと値がずれるため、共通の親にstateを置きます。入力欄は値を受け取り、変更を親へ通知します...
- Reactのリスト表示でkeyに安定したIDを使う
Reactで配列を表示するとき、各要素にkeyを付けます。これは表示する項目を再描画の前後で対応付けるための目印です。keyは同じ一覧の兄弟要素の間で一意であればよく、データ全体で一意である必要はあり...
- TypeScript async awaitで非同期処理の失敗を扱う
APIの結果を待ってから画面に表示したいときは、asyncとawaitを使います。ただし、fetchはHTTPの404や500だけでは例外になりません。通信失敗とHTTPエラーを分けて扱います。awa...
- TypeScript readonly配列で意図しない変更を防ぐ
関数へ配列を渡すと、その関数からpushやsortで元の配列を書き換えられます。読み取りだけをする関数では、引数をreadonlyにして意図を型で表します。totalの中でprices.push(40...
- TypeScript Union型を条件分岐で安全に使い分ける
APIの結果が成功または失敗のどちらかになる場合、両方の項目を任意にした1つの型へ詰め込むと、存在しない値を読みやすくなります。Union型なら、あり得る状態を別々に表せます。statusはどの型かを...