⛳
GraphQLからSQLにパースするライブラリを作りたい!
タイトルの通り、GraphQLからSQLにパースするライブラリを作りたくて、その背景や目的を共有するためにこの記事を書く。
背景
Webサービスのバックエンド開発には大きく極端に分けて二つの機能に分類できる。
- データ管理: データを保存、取得、アクセス管理など
- その他の処理: 外部API通信、メール送信など
データ管理とは極端に言えば、HTTPリクエストをSQLに変換しデータベースに問い合わせ、
帰ってきたものをHTTPレスポンスに変換して返すというものである。
この処理のために、多くの時間を費やしてしまっている現状があると思う。
これを改善するためのプロダクトとして、Hasura があり、筆者は2年ほど前から利用している。
Hasuraができることは単純で、一言で言えば、GraphQLからSQLに変換するパーサである。
変換時に事前に設定したアクセス権限も加えてくれるため、上記のデータ管理に費やす開発コストを大幅に下げることに成功した。
Hasuraは、Hasuraクラウドかもしくはdockerイメージを各プラットフォームにデプロイして利用するものであるが、
このGoライブラリがあれば、より柔軟に扱えて便利だと考えている。
目的
HTTPリクエストをSQLに自動的に変換することで、爆速でWebサービスを開発できるようにする。
Hasuraとの比較で、認証やアクセス管理などをより柔軟に記述できるようにし、テストしやすくそして保守しやすくする。
Discussion