🐷

Apollo ServerのみとexpressベースのapploserverとNestベースのapplo serverの違い

2024/04/18に公開

目的

typescriptでgraqhpqでサーバを建てようとした時に、apploserverの書き方に2種類あるということに気づいたことがこの記事を書いたきっかけである。

直感的なイメージ

それぞれの特徴と利点

applo server

特徴・利点

サーバー設定:Apollo Serverインスタンスを作成し、スキーマとリゾルバーを組み合わせてサーバーを設定し
ネットワーク経由でアクセス可能にする

expressベースApplo Server

特徴・利点

  • シンプルさと柔軟さ

    • Expressは非常に軽量で、最小限の構造しか提供により開発者はアプリケーションのアーキテクチャを大きく自由に設計
  • 広範なコミュニティとサポート

    • ExpressはNode.jsの中で最もポピュラーなフレームワークの豊富なライブラリーが多い
  • 統合の容易さ

    • Apollo ServerはExpressとの統合が非常にシンプル

NestJsを使う場合

特徴・利点

  • モダンなアーキテクチャ

    • NestJSはAngularに触発されたフレームワーク(@感じの使われるよ)により、依存性注入、モジュール性、テストの容易に行われる。
  • 組織的なコードベース

    • 大規模アプリケーションや複数の開発者が関わるプロジェクに適している。コード整理や維持が容易に行いやすい。
  • GraphQLとの優れた統合

    • NestJSはGraphQL(Apolloを含む)の統合が組み込みでサポートされており、GraphQLモジュールを使って簡単に設定できます。

まとめ

Nestのフレームワークを使うべき

  • Nestはgrahql(apploserver)を想定して作られているフレームワークのためとてても使いやすい。
  • 大規模アプリケーションや複数の開発者が関わるプロジェクに適している

Discussion