Webinar: How good subgraphs lead to great GraphQL federation. Register now
![Instant GraphQL APIs on your data | Built-in Authz & Caching](https://cdn-ak-scissors.b.st-hatena.com/image/square/ebf8fd8412a0212beca6b4d2a956fc56c80e85cc/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fhasura-cms-uploads%2Fimage%2Fupload%2Fv1712005989%2Fhome_og_5bcffcf84b.png)
はじめに 今まで触ってみたいと思っていたGraphQLとRedisを使って、リアルタイムチャットサーバーを作ってみました。 この記事では、主にGraphQLに重点を置いて実装を紹介していきます。 ソースコードはGitHubに上がっているので、そちらも合わせてご覧ください。 README.mdを見ればすぐにサーバーを建てることができるので、先に試してみるのも良いかもしれません。 アーキテクチャ 今回は以下のような構成になっています。 フロントエンドとサーバー間はGraphQLを用いた通信を行っています。 メッセージの送信やユーザーの作成は通常のGraphQLのMutationを、メッセージの受信は Websocket上で動作するGraphQL Subscriptionsを使用しています。 また、メッセージの配信にはRedisのPubSub機能を使っています。 これは、GraphQLサーバーが
Google Cloud Platformのマネージドサービスを使ってGraphQL APIを開発してみました。GraphQLについては初心者でしたので、実装しながらGraphQLについて学んだことを記録します。 利用した技術 App Engine SE Go 1.11 Go 1.11が11月にβリリース 2nd genと呼ばれる次世代ランタイム Cloud Datastore スケーラビリティの高いNoSQLデータベース Stackdriver Stackdriver Trace for Goを使いたかったため使用 個人で使う分には無料でいけます。動作も速い!! GAEの2nd genではプラットフォームのことはあまり意識することなく普通にサーバーを実装すればよいです。 にもかかわらず、必要な時、必要な分だけ高速に起動するので最高です。 主なライブラリ 使用した主なライブラリは以下のとお
A few months ago, a really nice Go package vektah/gqlgen for GraphQL became popular. This article describes how GraphQL is implemented in "Spidey", an exemplary microservices based online store. Some parts listed below are missing, but complete source code is available on GitHub. Architecture Spidey encompasses three services that are exposed to the user through a GraphQL gateway. Communication wi
Yesterday at reInvent, Amazon launched AppSync, a new GraphQL service featuring real-time updates and built-in offline support. Managed in the AWS console, AppSync’s GraphQL layer aggregates data from other AWS products such as ElasticSearch and DynamoDB. In your application, you query your GraphQL API with the AppSync Client, available for web and native. The AppSync announcement got a lot of lov
mysql> select * from users; +---------------------+------------+ | id | name | +---------------------+------------+ | 8674665223082153551 | s-ichikawa | +---------------------+------------+ 1 row in set (0.00 sec) mysql> select * from todos; +----------------------+---------------------+-------+ | id | user_id | text | +----------------------+---------------------+-------+ | T3916589616287113937 |
この記事はNuxt.js #2 Advent Calendar 2018の18日の記事です。 前の記事はNuxtでApolloを使わずにGraphQLを扱ってみる です。GraphQLの記事が続きますね。 はじめに 近年、GraphQLの知名度も上がり、RESTfulAPI に疲弊したプロジェクトがGraphQLを採用することが多くなっていると感じます。 GraphQLの詳しい説明は省略しますが、データ読み込みのquery, データ書き込みのmutation、リアルタイム接続のsubscriptionがあります。 query, mutationに比べてsubscriptionについての記事が少ないと感じたため、この記事ではSubscriptionを使用した簡単なチャットをNuxt.jsで作成します。 Demo 画面上は一般的なチャットですが、GraphQLのSubscriptionを使用し
GraphQLなAPIを実装するにあたって、認証をどうするか。 GraphQL内部で認証する GraphQLの外で認証する 認証とスキーマ 参考: A guide to authentication in GraphQL – Apollo GraphQL Learn SangriaのAuthentication and Authorisationセクション ScalaでSangriaを使って実装を考える。 個人的な結論 認証はGraphQLの手前で実行する。 具体例としては、クライアント側は認証が必要な操作をする際にHTTP Headerに認証トークン的なものを入れて送る。 サーバ側はGraphQLの世界に入る前にHTTP Headerからトークンを取り出して認証を行い、ログイン中のアカウントを特定してCtxのプロパティに入れてGraphQL世界に渡す。 スキーマとしては、アカウントそのも
Pagination Different pagination models enable different client capabilities A common use case in GraphQL is traversing the relationship between sets of objects. There are a number of different ways that these relationships can be exposed in GraphQL, giving a varying set of capabilities to the client developer. Plurals The simplest way to expose a connection between objects is with a field that ret
This is an exciting section of the tutorial where you’ll implement some key features of many robust APIs! The goal is to allow clients to constrain the list of Link elements returned by the feed query by providing filtering and pagination parameters. Let’s jump in! 🚀 Filtering By using PrismaClient, you’ll be able to implement filtering capabilities to your API without too much effort. Similarly
注:単純なデータモデルでさえ、今後の維持や説明が必要になる6つものエンドポイントが含まれています。 あなたがクライアント側の開発者で、movies APIを使い、HTMLとjQueryで単純なWebページを作るとします。そのためには、映画と出演俳優・女優の情報が必要です。APIに必要な機能は揃っているので、データを取得します。 新しくターミナルを開いて以下を実行します。 curl localhost:3000/movies 以下の応答が返ってきます。 [ { "href": "http://localhost:3000/movie/1" }, { "href": "http://localhost:3000/movie/2" }, { "href": "http://localhost:3000/movie/3" }, { "href": "http://localhost:3000/mo
こんにちは、メルペイのライブラリとか作るおじさんの @vvakame です。 インフラ編に続きGraphQL(API)編です。 MTC2018のカンファレンスLPのGraphQLによるAPI実装について紹介していきます。 リポジトリをこちらで公開しているので気が向いたら見ていってください。 Playgroundもあって、しばらくは生きている状態のままだと思います。 GraphQLやっていき 筆者は最近GraphQL、特にGo言語用のライブラリであるgqlgenに入れ込んでいます。 そこで、APIの実装にGraphQLを使うことによりgqlgenの使い方を社内に示し、ついでクライアント側の人たちにGraphQLの良さを体感してもらおう!という思惑です。 MTCでもCSToolをgqlgenでやっていき!という話題がありましたし! …と思ったらアプリの人たちはFlutterを選び、Dartには
この記事は GraphQL Advent Calendar 2018 の22日目です。 どうも、HiCustomerのエンジニアの@m4s4k3xです。 GraphQLが広く使われるようになって久しいですが、弊社でも、以下の理由などからGraphQLを導入することにしました。 BFFを立てるほどのエンジニアリソースを割かなくてよい Union TypesやEnumと言ったスキーマの型表現が可能である エコシステムが豊富 大量のエンドポイントを増やさなくても良い 一度のリクエストでフロントエンドで必要なリソースが取得可能 Goにおいての採用事例もちらほら見かけるようになりました。GoにおけるサーバーサイドにおけるGraphQLライブラリはメジャーなものが5つほどあります。各々のライブラリの横断的に紹介した後、弊社での選定理由を紹介します。 GoにてGraphQLの導入を検討している方への助け
MF KESSAIでバックエンドのエンジニアをやっている@garsueです。 先日、社内向けサービスの新規開発でGraphQLを採用することになりました。 今回はその経緯や実装方法についていくつか参考記事を交えながら紹介していきます。 なぜGraphQLか 今回新規で開発するサービスは以下のような特徴があります。 MF KESSAIの内部は複数のサービスに分かれていて、それらをふんだんに利用する 社内向けなので直近でそこまで高負荷になる見込みはない フロントエンドとバックエンドのすり合わせにあまり時間をかけたくない(そんなに時間はない) まず複数サービスとの協調という点について、マイクロサービスをベースとしたGraphQLとGoによる開発を紹介した記事Using GraphQL with Microservices in Goにある内容をそのまま適用できそうだなというところからGraphQ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く