こんにちは、秋葉原ラボの鈴木(@brfrn169)です。 普段は、ログ解析基盤のインフラ部分や分散DB(主にHBase)周りをやっています。
![『GraphQLについて調べてみた』](https://cdn-ak-scissors.b.st-hatena.com/image/square/b6426102b4477fae150aeabf0e66f0adf8ca4f29/height=288;version=1;width=512/https%3A%2F%2Fstat.profile.ameba.jp%2Fprofile_images%2F20151112%2F16%2Fe5%2FJE%2Fg%2Fo016001601447312149878.gif)
こんにちは、秋葉原ラボの鈴木(@brfrn169)です。 普段は、ログ解析基盤のインフラ部分や分散DB(主にHBase)周りをやっています。
2017/07/18 Service Dev Meetup #1 の資料です。 会場は Speee さんに提供していただきました。ありがとうございました。 自己紹介 FUJI Goro / @__gfx__ ビットジャーニーのエンジニア 最近のスコープ: Ruby on Rails / TypeScript / React / GraphQL 情報共有サービス Kibela を開発してます 最近の発表: RailsエンジニアがReactを始めてSSRとReduxとTypeScriptを導入するまで 今日の話 Kibelaにおける技術選定とは やらないこと やったこと これからやること Kibelaにおける技術選定とは 自分(@gfx)にとっては技術的挑戦は精神衛生上必要なこと 興味のある分野に限るが… スタートアップにとってはサービスの成長が最も重要 技術的挑戦によって機能を磨いて差別化に
December 8, 2016An enhanced GraphQL developer experience with TypeScript Guest post by Robin Ricard (Github, Twitter, Website), community contributor to the Apollo project. A few months ago, Sashko Stubailo wrote an excellent article about the benefits of static GraphQL queries. After seeing that article, I immediately wanted to get that great development experience he was talking about in my own
In this post, I’m going to answer one simple question: How does a GraphQL server turn a query into a response? If you’re new to GraphQL, get the three minute intro in How do I GraphQL? before reading on. That way you’ll get more out of reading this post. Here’s the ground we’ll cover in this post: GraphQL queriesSchema and resolve functionsGraphQL execution — step by step Ready? Let’s jump right i
The New York Times website is changing, and the technology we use to run it is changing too. As the new site rolls out over the next several months, a look under the hood will reveal a number of modern technologies designed to make the site faster and easier to use — for readers, most importantly, but also for our developers. At the center of this has been our adoption of React, Relay and GraphQL.
RESTの規約。URLはリソースであり、CRUDはHTTP動詞にマップされる。 RESTの規約に1つ問題があるとすれば、規約が十分でないということでしょう。上記で”通常”、”多くの場合”、”時に”という表現を使ったのは、これらのやり方は仕様で推奨されているものの守られるとは限らないためです。実世界では、大抵のAPIはRESTishがせいぜいです。例えばStripeでは、リソース更新に PUT ではなく PATCH を使うべきですが、歴史的理由でそうはなっておらず、おそらく現時点では変更に値しないでしょう。いずれにしても開発者はドキュメントを読む必要があり、その時、 POST メソッドのユビキタスな使い方があることに気づくのです。 RESTには他の問題もあります。必要なものだけでなく全てが返ってくるため、リソースのペイロードが非常に大きくなることがあるのです。そして多くの場合、クライアントが
最近公開されたGitHubのAPIは、GraphQLという形式に対応しました。今後はこちらが主流になっていくようで、既存のREST APIからGraphQLへのマイグレーションガイドも提供されています。 今回は、このGraphQLについて、実際にGitHubのAPIを叩きながらその仕組みを解説していきたいと思います。 GraphQLとは 歴史 GraphQLは、Facebookの中で2012年ごろから使われ始めたそうです。その後2015年のReact.js Confで紹介されたところ話題となり、同年"technical preview"のステータスでオープンソースとして公開されました。その後仕様が詰められ、2016年9月に晴れて"preview"を脱し公式実装として公開されました。これと同じタイミングで、GitHubからGraphQLバージョンのAPIが公開されています。 このあたりの経緯
今回は、qnyp GraphQL APIを設計・実装する過程で役立ったものや参考になった情報を実際のコードを交えて紹介しようと思います(qnypはアニメの感想を記録するサービスです)。API設計の詳細や具体的な実装手順までは踏み込みません。 API実装はRailsアプリ内で行っていますので、紹介するライブラリなどは主にRuby向けのものとなります。 GraphQLの概要をつかむ The Anatomy of a GraphQL Query このエントリは、GraphQLを使う際に知っておく必要のあるOperationやVariables、Fragments、Directiveといった概念を手っ取り早く俯瞰する際に役立ちました。 GraphQL APIの実装を進めていくと、最終的には graphql.org にある Introduction to GraphQL を隅々まで読むことになるとは
Reactがもっと広まって欲しいと思っている今日このごろ。React EuropeでJoseph Savona氏の講演でRelayについての「モヤっと」がいっきにかなり解消された気がするので、要点を本編を翻訳しながら自分なりにまとめておきます。 私の理解が誤っている可能性は十二分にありえるので、ご指摘いただければ幸いです。 はじめに ReactとFluxって組み合わせと共によく目にするのが↓の図。 矢印は一方向にしか進まないのが特徴で、わかりやすいってのがいろんなところで書かれているんですけど、 結局データをサーバからとってくるところってどうなってるの?ってのが疑問として残ります。つまり、図で表現すると↓の部分の仕組みがどうなっているかってところです。 その部分を、Instagramのようなサービスを例に説明しています。 クライアントはどのようにしてサーバからデータを取得すべきか まず、I
のようなクエリをクライアントが発行することになります。 なぜこのようなシステムが必要かの説明の前に、RESTの問題点を挙げてみます。 RESTの問題点 Server Side Renderingの場合 コントローラでEager Loading等のクエリ最適化を意識しないといけない ビューを実装するときも結局裏側でどのようなクエリが発生するかを意識しないといけない Client Side Renderingの場合 コンポーネント毎に必要な情報をリクエストする場合、AJAXリクエストを何度も発行する必要がある 提供されているAPIが不十分だと、クライアント側でテーブル結合が必要となる 共通する問題 クライアント毎にちょっとずつ違うAPIを用意してメンテしないといけない 端末に応じて異なるサイズの画像を返す ネイティブアプリとウェブアプリで異なる結果を返す 等など APIに「暗黙的な契約」が発生
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く