Skip to content

Repository files navigation

machi

概要

Denoを利用したユーザ登録/検索用web API

実行方法

/machi-api/README.md を参照してください

サブプロジェクトについて

machi-api

本体。web APIの設計・実装及び実行、テスト。

machi-docker

DB等のDockerイメージの定義をまとめる

machi-model

DBに保存する / リクエスト・レスポンスされるそれぞれのデータのモデルを定義する。

machi-openapi

OpenApi (v3) 用。APIドキュメントの出力等に利用する。

できれば、openapiを記述したら、web api の枠組みが自動生成されるような流れで開発がしたかった。

machi-service

machi-apiで利用するためのDIコンテナ郡を定義する。

技術選定に関するメモ

Typescript

個人的に慣れ親しんでいるTypescriptを採用しました。

一番好きにも関わらず、ここ1年弱触れなかったリハビリと、フラストレーション解消も兼ねています。

OpenAPI

コーディングの際には https://osbecu.stoplight.io を採用。 わかりやすくAPI・モデル設計ができる点でとてもよかったです。

OpenAPIを記述したらコードが自動生成されるのは知っていましたが、 denoのweb API用のgeneratorは存在しない事が判明したため、書くのは2重メンテになってしましました。

しかし、machi-apiで採用しているalosaurが、コードからopenAPIを生成する機能をサポートしようとしているため、 長い目で見れば悪くない選択ではあったとは思います。

Deno

「nodeの作者が反省点を活かして作った」という話で、前々から気になっていたため、今回採用しました。

触ってみた雑な所感として、フレームワーク等のライブラリはある程度困らない程度にはあるが、どれもしっかり作りきれてない(v1になっていない)印象でした。

nodeパッケージで使えるものが多数あり、現時点で困ることはあまりないように思えました。 悪く言えば、ts-nodeと大差ない所感でした。

Alosaur

DenoのWebAPIフレームワーク用ライブラリの1つ。唯一Decoratorが利用可能であり、DIが標準で利用できるなどの多機能感があり採用しました。 現状 Deno-awesomeで紹介されているライブラリとして、デコレータを使っているのはこれくらいしかありませんでした。 (見つからなかっただけかもしれませんが)

typeorm

DBの構成をsql文に書き起こすのが手間だったので採用しました。(SQL文はほとんど書いたことがないため、、)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages