実技試験用に作成しました
TypeScript-Node-Starterを参考にしています。
- Todo の要素として次の項目を保持する
- タイトル
- 内容 - 検索、登録、更新、削除の操作が行える
- テストコードが書かれている
- API 仕様書が書かれている
Nodejs 6.3(TypeScript)
- データの永続化
MongoDBを利用して実装 - ユーザ認証
URIのユーザIDで判別し、認証はしない - 同時アクセス
APIの責務ではないので割愛 - 排他制御
- 拡張性
- 認証処理を追加する場合
- データモデルの変更が発生した場合
- テスト
API毎にテストスイートを分けて見通しよくする
パラメータ抜け等で使われ方での異常パターンがどれだけ踏めているか
MongoDBが落ちてる時 - バージョンをAPI仕様に含めるか?
時間が許す限り書いていきます。
- なぜMongoDBを採用したのか
JSONで出し入れが簡単に出来るため、採用しました。
TODOリストの機能として、トランザクション機能が必要ない(そもそもRestAPIなので)と言う点でもあります。
複数のオブジェクトを結合する必要が出てきた場合は、RDBも検討の余地があると考えます。
- async awaitは必要か
mongodbの操作結果に対する処理をcallback hellにしないために利用しました。
結果的に可読性が上がり、デバッグも捗ったと考えています。
- テストファイルを複数作ると2個目以降の実行でエラーになる
-> 調べる - テストファイルを操作単位で分けて、操作毎にパラメータ欠けのテストを追加する
- パラメータ不足によるエラーを定義する
-> API仕様書 - プレゼン資料作る -> 努力目標
- Express,TypeScript,MongoDBの利用基準
- APIを作る際の考慮について纏めておく -> テスト性、移植性