Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@Inadati

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

More than 1 year has passed since last update.

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でも是非機能追加して欲しいという要望が盛り上がっていたので
今後、追加される可能性はあります。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Inadati
現在、k8sを勉強中 勉強に集中気味なので投稿少なめです。 今後、k8sでこんなんやってみたというのがかけるレベルになったら再開するかも 文章書くのはあまり得意ではないので訳わからん内容だったら申し訳ない...

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?