JavaScript勉強会

JavaScriptの学習日記

GraphQLのメモ

使いやすい静的サイトジェネレーターが欲しいです。

使い慣れたPukiWikiをカスタマイズする手もありますが、ネットを閲覧するデバイスが増えた現代では、時代遅れになってしまった感は拭えません。

 

いろいろ調べてみたら、

  1. Markdown形式やAsciiDoc形式でコンテンツデータを作成する。
  2. Headless CMSなどのAPI形式でコンテンツデータを配信する。
  3. ReactやVueなどのWebアプリでコンテンツデータを表示する。

という仕組みが流行っているみたいです。

 

で、API形式でコンテンツデータを配信する場合、REST方式の他にFacebookが開発しているGraphQL方式が便利らしいです。

 

 

f:id:jsstudy:20190729000132p:plain

 

GraphQLとは?

GraphQL - Google 検索

 

GraphQLの公式サイト

graphql.org

 

GraphQLとRESTの違い

www.webprofessional.jp

 

GraphQL:APIの進化系

GraphQLはFacebookにより開発されたオープンソースの言語です。

API作成の仕組みとしてRESTの代わりに使えます。

RESTはAPIの設計と実装に使う概念上の設計モデルですが、GraphQLは標準化された言語、型付け、仕様を持ちクライアントとサーバー間を強力に結びつけます。

異なるデバイス間の通信に標準化された言語があることで、大型かつクロスプラットフォームアプリ開発がよりシンプルになります。

 

GraphQLのメリット紹介

note.mu

 

APIでデータを取得するとき、従来のRESTよりも新しいGraphQLの方が便利な機能があるよ!ということみたいです。

 

GraphQLライブラリーの「Apollo

GraphQLを手軽に使うためのJavaScriptライブラリーがいろいろ出ているそうです。

Apollo」というライブラリーが便利みたいです。

 

GraphQL Apollo - Google 検索

 

www.apollographql.com

 

qiita.com

 

まとめ

  • 最近のWebサイトの構築には、「Headless CMS」というツールが使われている。
  • 「Headless CMS」によって、Webコンテンツの作成→配信→表示という一連のプロセスが分割して管理できる。
  • コンテンツデータが一番大事なので、配信や表示の部分は流行り廃りで別のツールに取り換えてもOK。
  • 今なら、GraphQL方式を採用しておくと、いろいろと便利

 

静的サイトジェネレーターを検討するときは、「GraphQL」というキーワードに注目して探してみたいと思います。

 

 

Learning GraphQL: Declarative Data Fetching for Modern Web Apps

Learning GraphQL: Declarative Data Fetching for Modern Web Apps