Denoを利用したユーザ登録/検索用web API
/machi-api/README.md を参照してください
本体。web APIの設計・実装及び実行、テスト。
DB等のDockerイメージの定義をまとめる
DBに保存する / リクエスト・レスポンスされるそれぞれのデータのモデルを定義する。
OpenApi (v3) 用。APIドキュメントの出力等に利用する。
できれば、openapiを記述したら、web api の枠組みが自動生成されるような流れで開発がしたかった。
machi-apiで利用するためのDIコンテナ郡を定義する。
個人的に慣れ親しんでいるTypescriptを採用しました。
一番好きにも関わらず、ここ1年弱触れなかったリハビリと、フラストレーション解消も兼ねています。
コーディングの際には https://osbecu.stoplight.io を採用。 わかりやすくAPI・モデル設計ができる点でとてもよかったです。
OpenAPIを記述したらコードが自動生成されるのは知っていましたが、 denoのweb API用のgeneratorは存在しない事が判明したため、書くのは2重メンテになってしましました。
しかし、machi-apiで採用しているalosaurが、コードからopenAPIを生成する機能をサポートしようとしているため、 長い目で見れば悪くない選択ではあったとは思います。
「nodeの作者が反省点を活かして作った」という話で、前々から気になっていたため、今回採用しました。
触ってみた雑な所感として、フレームワーク等のライブラリはある程度困らない程度にはあるが、どれもしっかり作りきれてない(v1になっていない)印象でした。
nodeパッケージで使えるものが多数あり、現時点で困ることはあまりないように思えました。 悪く言えば、ts-nodeと大差ない所感でした。
DenoのWebAPIフレームワーク用ライブラリの1つ。唯一Decoratorが利用可能であり、DIが標準で利用できるなどの多機能感があり採用しました。 現状 Deno-awesomeで紹介されているライブラリとして、デコレータを使っているのはこれくらいしかありませんでした。 (見つからなかっただけかもしれませんが)
DBの構成をsql文に書き起こすのが手間だったので採用しました。(SQL文はほとんど書いたことがないため、、)