LoginSignup
4
1

More than 3 years have passed since last update.

graphqlサーバーフレームワークを作ってみたよって報告してみたり

Last updated at Posted at 2019-12-06

Lunar.js

こっちがメインリポジトリ
https://github.com/inadati/Lunar.js

こっちがdocker-composeで超簡単にサンプルを試せるように
コンテナ化したやつ
https://github.com/inadati/Lunar.js-sample

コンセプト

Hasuraとクライアントアプリの橋渡しをする為の
ブリッジサーバーとしての立ち位置が基本です。
なので、サーバー自体もApolloの拡張である「graphql-yoga」を利用し
クライアントも「ApolloClient」を使い
HasuraのgraphQL apiを叩いてやろうと
そういう、コンセプトになります。
サーバーとしても「Apollo」、クライアントも「Apollo」なので
「Lunar(月面)」という事です。
ちなみにフレームワークとしてのベースはparcelを利用しています。

ApolloClientを使わずORMを使って直接、DBへの読み書きをする
graphQLサーバー構築の為のフレームワークとしても利用は可能ですが
Hasuraを使って爆速開発するというのが目的なので
クライアントはApolloClientを使うのが最もオススメです。

2019年末、現在のgraphQL周りの状況

  • オススメのプログラミング言語は?

現状、最もオススメはnode.jsです。
golangもサーバーを構築用のツールは非常に充実しています。
特にgqlgenは強力です。
というかgqlgen一強だと思います。
ただ、golangは、クライアント側が無いので
Hasuraなんかとは相性が良く無いです。

  • prismaは?

Hasura以外にも、prismaも今後期待できる開発ツールですが
prismaで一度、出勤管理アプリのサンプルを作ってみようとテストしていた時の事ですが
出勤管理なので当然、cronで日付を更新する必要があり
日付が変わった際、登録されている全スタッフに紐付けされた
出勤情報を更新しなければならないわけですが
なんと、prismaは現在、preview中のprisma2も含め
createManyというmutaitionが用意されていません。
issueでも是非機能追加して欲しいという要望が盛り上がっていたので
今後、追加される可能性はあります。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1