You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
技術開発本部の qsona (twitter: @qsona) です。 GraphQLに関してのユーザコミュニティである GraphQL Tokyo のMeetup #6が行われ、FiNCがスポンサーとして会場・食事・飲み物の提供を行いました。 GraphQL TokyoのMeetupはオープンスペース方式で、各セッションでGraphQLに関するテーマを1つ取り上げて少人数で議論していきます。どのセッションも議論に花が咲き、とても盛り上がりました! 共同主催者の joe_re さん, Yosuke Kurami さん, mtsmfm さん, taiki-t さん, 素晴らしい会をありがとうございました。ユーザコミュニティの運営は継続的な熱意が必要で大変だと思います。GraphQLの日本への普及に大きな役割を果たしていて、頭が下がる思いです。私個人としては2回目の参加でしたが、2回とも新しい
Amazon Web Services ブログ AWS Amplify が効果を発揮する Next.js の 5 つの機能 Next.js は、React アプリのサーバーサイドレンダリングと静的サイト生成を可能にする、人気の React フレームワークです。フロントエンドの Web およびモバイル開発者が AWS 上で迅速かつ容易にフルスタックアプリケーションを構築できるようにする目的で構築されたツールおよび機能のセットである AWS Amplify と組み合わせると、開発者は本当に強力なアプリを構築することができます。 本記事では AWS Amplify が効果を発揮する Next.js の 5 つの機能を紹介します。 1. データフェッチと API Next.js は静的サイト生成(SSG)、サーバーサイドレンダリング(SSR)、クライアントサイドレンダリング(CSR)、インクリメン
エンジニアリンググループの冨岡 (@jooohn) です。出張でNYにきています。NYへの出張は二度目なのですが、同僚のChris (彼はUK, JP, USと三カ国のM3を渡り歩いています!) とWashington, D.C.にいくなどして休日も満喫しています。 バーガーは野菜 Washington, D.C. にて。NYCからバスで4hほどでいける。 現在はM3 USAが運営するニュースサイトMDLinxのリニューアルプロジェクトに関わっています。そこで利用しているGraphQL (Apollo) の活用事例を紹介します。 新しいMDLinx の構成 新しいMDLinxでは上図のように、k8sクラスタ内にいくつかのサービスが存在するマイクロサービス構成になっています。各サービスではGraphQLを共通のインターフェースとして利用しており、webhook用のエンドポイントなどの特殊な場
現在、Ruby 製 worker を作成することを業務で行っているのですが、継続的にメモリ使用量が増加する現象に遭遇してました。 (グラフの値が下がったタイミングが数回ありますが、それぞれでデプロイが行われてリセットされただけ) ObjectSpace.allocation_sourcefile や ObjectSpace.allocation_sourceline を利用してどのファイルのどの行でメモリ確保が多くなるのか調べれるようにしました。 以下のようなコードを worker に追加しました。 require 'objspace' class MemoryProfiler INTERVAL = 5 * 60 DISPLAY_COUNT = 20 def self.start Thread.start do loop do memory_usages = {} ObjectSpace.
皆様、新年あけましておめでとうございます。今年も昨年の特集に引き続き、2018年のAPI動向を探っていきたいと思います。新年早々の記事なので当たるも八卦、当たらぬも八卦。気軽な気持ちで読んでみてください。 JSONを巡る動き RFC 8259の策定 まず直近の2017年12月に策定されたRFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Formatに触れない訳にはいかないでしょう。簡単に要点を列挙すると以下のようになります。 このRFC 8259はECMA-404との統合がなされ、今後これらの仕様が足並みを揃えて更新されるようになっていきます。 8.1. Charactor Encodingに示されるとおり、原則JSON textはUTF-8でエンコードされないといけなくなりました。 8.2. Unicode
Domain-first DevelopmentHerbsJS is a domain-first development framework (non-MVC approach), that allows you to build maintainable applications by using the same language and terms as your stakeholders. Low-code InfrastructureREST and GraphQL endpoints running on the same project. Move your data transport layer without changing your code. That's the magic of a domain-first development. AI-AssistedW
先日、TypeScript + Tynderから始める宣言的検証生活の記事にて スキーマ検証ライブラリTynderを紹介いたしました。 Tynderとは Tynderは、TypeScriptのサブセット+独自の拡張文法から成るDSLによって 型の検査 単独の項目の必須・値の長さ・範囲や文字列パターンの検証 複数項目の相関や整合性検証の一部 (Union typeによる) を宣言的に行うことができます。 今回はTynderのスキーマ変換機能を使用して JSON Schema、GraphQL、Protobuf3 のスキーマを生成するオンラインツールを公開しました。 (GraphQL、Protobuf3については実験的機能です) TypeScript (Tynder DSL) → JSON Schema | GraphQL | Protobuf Converter Convert schema
こんにちは、kintone プログラマの前田です。 2月23日(火)サイボウズ東京オフィスで React.js meetup #3 が開催されました。今回はこのイベントの各セッションの内容を簡単にご紹介します。なお、当日の様子は togetter でもまとめられています。 React.js meetup とは その名の通り React についての meetup で、今回は3回目になります。当日は80人を超える参加者で大変盛り上がり、React の注目度が感じられる meetup でした。 Evolving Complex Systems Incrementally 最初は @cpojer さんによる発表から始まりました。JavaScript をモダンなコードに変換するための jscodeshift を紹介する話だったと思います。全編英語で内容をすべて把握できたわけじゃないのですが、書き方が
この記事は Money Forward Engineering 1 Advent Calendar 2022 11 日目の投稿です 🎄 昨日 10 日目は cabossoldir さんによる 『コードレビューのとき、私は何をレビューしているのか?』 でした。 🙈 TL;DR Fragment Colocation とは、コンポーネントが必要とするデータを Fragment にまとめてコンポーネントと同じ場所に配置 (co-locate) すること Fragment Colocation を導入することで、「Query や Mutation を実行するコンポーネント」と、「それらの結果を必要とするコンポーネント」との関心の分離ができる Query, Mutation, Fragment はそれを実行するあるいは必要とするコンポーネントと同じファイル内に宣言すると依存関係が見やすく、変更が
AskQL is the next step after GraphQL and Serverless. With AskQL developers can attach scripts to queries that are executed serverside. The AskQL parser accepts the GraphQL query format so there's no learning curve. Because the scripts are executed serverside and the results can be cached it's great for Web Vitals and app performance. Think of it as a programmable GraphQL. Read a great articly on A
Next.js x Relay な GraphQL 環境で Render-as-you-fetch の良さを最大限生かしつつ SSR にも対応したいあなたへRelayGraphQLNext.js はじめに 最近 Next.js ベースのプロジェクトに GraphQL クライアントとして Relay を導入したのですが、これが端的に言ってめちゃくちゃ大変だったので記事にしました。 チームの試行錯誤の結果を余すところなく伝えたいと張り切りすぎた結果死ぬほど長くなってしまったので、「いいからコードはよ」という方は 最終的にこんな実装になりました (コード編)をご覧ください。 謝辞 愛するチームメンバーのみんな。これまでの道のりで私を支え、愛してくれたみんながいなければ、この記事は完成できなかったと思う。 また、この記事が世に出せたのは、スーパーテクニカルアドバイザーである koichik さんの
GraphQL Prerelease Working Draft Tue, Nov 20, 2018 Latest Release June 2018 Sun, Jun 10, 2018 Release Notes October 2016 Mon, Oct 31, 2016 Release Notes April 2016 Thu, Apr 7, 2016 Release Notes October 2015 Thu, Oct 1, 2015 Release Notes July 2015 Thu, Jul 2, 2015 Release Notes
こんにちは、エンジニアの柿木です。 今回は、スキーマ駆動のAPI開発について投稿します。 スキーマ駆動のAPI開発とは? スキーマ駆動のAPI開発とは、「最初にスキーマの設計をし、APIの開発者と利用者がそのスキーマを中心に開発を進めていく手法」と言えるかと思います。 スペースマーケットで最初に私が取り入れてみようと思ったきっかけは、昨年12月に発行されたWEB+DB PRESS Vol.108|技術評論社の特集を読んだことがきっかけでした。 スキーマ駆動開発導入のモチベーション 以前のブログや勉強会でも紹介されていた通り、弊社では、GraphQLを採用しています。 RailsでGraphQL APIを作る時に悩んだ5つのこと 検索のMicroservices化 with Apollo Server – Speaker Deck GraphQL GatewayをNode.jsで作ってる話
こんにちは。Studyplusでサーバーサイドを担当している金澤です。 弊社ではいまapiの一部にGraphQLを導入するべく取り組んでいます。 GraphQLってなんだという話や導入手順などはweb上にすでに沢山あると思います。 なのでそのへんはあっさりめで、検証にあたってどのような実装をしているかという話をします。 で、GraphQLってなんだ 公式ページから言葉を借りれば、 A query language for your API です。 apiに対する問い合わせをクライアントで組み立てて柔軟にできます。 上記ページのデモがとても分かりやすいのでピンと来ない方は是非ご覧ください。 GraphQLでできる3つのこと query データの問い合わせ 今回はこの話だけします mutation データの変更 subscription いわゆるpub/sub なぜGraphQLなのか 動機と
https://techplay.jp/event/679666 Topics GraphQL / graphql-ruby 2018 what's new GraphQL API の設計の勘所 Analyzer API (Subscriptions) おまけ: webpack without webpacker 自己紹介 開発しているもの: Kibela https://kibe.la/ コラボレーションソフトウェア a.k.a. 情報共有ツール 社内用の blog / wiki を提供するSaaS We are hiring! エンジニア採用やってます!(We're Hiring Engineers!) - Kibela Blog Kibela Web API GraphQL製 内部APIとして 新規はGraphQLで実装 旧 RESTful API も徐々に GraphQL に移行中
虎の穴ラボのかのたんです。 AWSが公式で提供しているAmplifyという開発ツールは非常に簡単、かつ高速にAPI環境が構築できるということで注目度が上がっており、AWSの公式セミナーや勉強会等でも取り上げられる機会が増えています。 弊社でも有志でAmplifyの使い方についての調査を行っており、特に以前弊社のNSSさんがブログに投稿したAmplifyに関する記事は非常に多くの方に読んでいただきました。 toranoana-lab.hatenablog.com Amplifyの導入については、こちらのNSSさんの記事が非常に参考になります。 私の方でもAmplifyについて触ってみたので、今回の私の記事は上記のNSSさんの記事から派生するような形で、複数モデルのGraphQL APIの作り方について書きます。 GraphQL APIの作成 本記事の前提条件として、上記のNSSさんの記事等を
GraphQLのクエリやミューテーションはJSONエンコードされた本文をHTTP POSTでサーバに送ることで実行されます。 すべてのクエリやミューテーションは同じエンドポイント(/graphql等)に対してPOSTされるため、特別な対応をしない限り、ログには「クエリ or ミューテーションどちらなのか」「どんな内容か」などの情報が記録されません。 簡単な設定だけでログを見てざっくりリクエストの傾向がわかるようにできると便利ですよね。 エンドポイントにoperationNameを付与する 例: query FooBarQury を実行した場合 -> /graphql?operationName=FooBarQuery 上記のようにしてクエリやミューテーションの名前を operationName としてリクエストURLに付与します。 具体的な情報はもちろん本文に含まれるため、細かな分析はでき
この記事は、今年イチ!お勧めしたいテクニック by ゆめみ feat.やめ太郎 Advent Calendar 2019 23日目の記事です。 導入 皆さんこんにちは。らいパン粉という者です。twitter→https://twitter.com/elipmoc101 さて、皆さんはバックエンドのプログラミング言語に何を選ぶでしょうか。 PHP?Ruby?JavaScript(Node.js)? それともElixir、Scala、Go、Rust、Haskell等でしょうか。Coolですね。 最近、フロントエンドではTypeScriptが有名です。 この際、バックエンドもフロントエンドもTypeScriptでサクッと開発してみたいと思いません?僕は思いませんけど。(Ebio Syntax) そんなわけで、TypeScriptでサクッとバックエンド開発ができるNestJSを紹介していきます。
Recoil から最近登場したライブラリ recoil-relay とライブラリ公開の真意について、@spring-raining と @uhyo が話しました。 Recoilについて ep.49 ReThink state managements - Recoil から見える未来 https://uit-inside.linecorp.com/episode/49 recoil-relayでできること リリースブログ: https://recoiljs.org/blog/2022/06/02/recoil-relay-0.1.0-release Recoilと統合されたGraphQLクライアント GraphQLのクライアントとしてはApolloが有名だが、Meta公式はRelayというライブラリを提供している spring-raining: recoil-relay自体は小さなライブラリ
本チュートリアルはもともとShopifyが社内向けに作成しました。 そして、本チュートリアルがGraphQL APIを利用する全ての方にとって役に立つと考え、公開版を作成するに至りました。 本チュートリアルは、Shopifyのプロダクション環境における過去3年間のスキーマ構築と拡張から得た学びに基づいています。 本チュートリアルはこれまでも発展してきましたし、今後も更新され続けるでしょう。 我々は本デザインガイドラインが多くの場合に有用であると信じていますが、すべてがあらゆる状況に当てはまるとは限りません。 ほとんどのルールがつねに100%適用可能な訳ではないため、社内のなかでも未だに議論がありますし、例外を設けています。 ですから、本チュートリアルに盲目的に従ってすべてを取り込もうとせず、あなたの目的や状況に応じて役に立つ部分を適用してください。
Wantedly でバックエンドエンジニアをしている @izumin5210 です。 この記事は GraphQL Advent Calendar 2020 の11日目の記事として書かれました。が、7割くらいは SSR についての議論のこり3割くらいが Apollo Client の話です。 最近、Apollo Client と SSR(Server Side Rendering) を利用した Web アプリケーションのパフォーマンス改善に取り組みました。この記事では「パフォーマンスの問題にどう立ち向かったか」および「そもそも問題を起こさない構造にするために何ができるか・何をすべきでないか」の考察をしていきます。 TL;DRパフォーマンス改善は計測・可視化からライブラリが用意してくれているフック機構を上手に使って計測していこうrenderToStringWithData では、renderT
Lambda無しでGraphQLのAPIを作ろう!!AppSyncをAWSサービスのプロキシとして利用してみる 先日のブログでAppSyncのHTTPデータソースとしてStep Functionsを利用する構成をご紹介しました。AppSyncのデータソースとしてネイティブに対応していないサービスであっても、HTTPデータソースを介してAppSyncと連携させることが可能です。 この例のようにAppSyncをAWSサービスのプロキシとして構成することで、CRUD操作のような単純なオペレーションに関してはわざわざLamdbaを使わなくてもAPIを実装することが可能です。AWSとしてもre:inventのセッション等で「LambdaはTransformのために使い、Transportに使わない」ことがベストプラクティスだと発信しており、Lambda無しで実現できることは極力Lambdaを使わない
GraphQL has a reputation for its N+1 problem which can often happen when implemented naively. This leads to a lot of us trying to solve the issue of data fetching with GraphQL in the most efficient way possible. Besides the popular Dataloader approach, another very common way of tackling this problem is by taking a GraphQL query, and coming up with the exact SQL needed to resolve it: // example fr
GraphQL Prerelease Working Draft Tue, Nov 20, 2018 Latest Release June 2018 Sun, Jun 10, 2018 Release Notes October 2016 Mon, Oct 31, 2016 Release Notes April 2016 Thu, Apr 7, 2016 Release Notes October 2015 Thu, Oct 1, 2015 Release Notes July 2015 Thu, Jul 2, 2015 Release Notes
皆さんこんにちは。筆者は最近、TypeScriptからGraphQLを使用するためのコード生成ツールnitrogqlを開発しています(初手宣伝)。 直近は、GraphQLのスカラーに関する機能拡張を行っていました。この記事では、そこで得た知見と考察について共有します。 GraphQLのスカラーとは GraphQLにおけるスカラーとは、それ以上分解できないデータ型のことです。GraphQLのデータはスカラー・オブジェクト・enumに分類でき、データの末端はスカラーまたはenumになります。 GraphQL仕様では組み込みのスカラー型が定義されており、以下のものがあります。 Int Float String Boolean ID また、カスタムスカラーとして、追加のスカラー型をスキーマ上で定義することもできます。 スカラー値がサーバー・クライアント間でやり取りされるときはシリアライズする必要が
みなさん、こんにちは!プロダクト開発部 ユーザープラットフォームGの吉川です。 現在、JMDCが保有している医療ビッグデータを活用して生活者や医療に新しい価値を提供する新規プロダクト開発チームのバックエンドを担当しております。今回は新規プロダクト開発のバックエンドで採用している技術や設計について紹介させていただきます。 Go ユーザープラットフォーム開発部の新規プロダクト開発チームは Go を採用しています。採用した理由は色々ありますが、主に以下の点から新規プロダクト開発でもGoを採用することにしました。 静的型付け言語である APIを作りやすい シンプルなコードを書ける メンバーのGoでの開発に対するモチベーションが高い また、昨年に若手の Go 未経験のエンジニアが入社したので Go をスムーズにキャッチアップできるようにオンボーディング資料を作成しました。 主に使用しているライブラリ
Hatena-Textbook 2018学習日記(5) - GraphQL編 - $shibayu36->blog;のようにHatena-Textbookを用いて最近のモダンなWebアプリケーション開発の学習をしているのだけど、TypeScript + GraphQL + Apollo Client + Reactの部分でそれぞれの技術の基本知識を理解できていなかったので、エラーが起きたときに何から直したらよいかわからない状態になってしまっていた。 前回はGraphQLのクエリについて学んだ - $shibayu36->blog;でGraphQLを少し掘り下げたので、今回はApollo platformについてチュートリアル( https://www.apollographql.com/docs/tutorial/introduction/ )を行いながら学習を進めていった。 Apollo
こんにちは、全国タクシーSREチームの水戸です。 インフラからアプリケーションまでサービスの安定性向上のための改善を日々行っています。 最近全国タクシーチームでは次期バージョンのAPIにGraphQLを採用しリリースに向けて開発しています。 全国タクシーのサーバサイドはRuby on Railsのため実装にはgraphql-ruby gemを使用しています。 普通にこのgemを使用する分にはドキュメントを見ながら実装すれば問題なく動くのですが、今後より深くGraphQLを理解していくためにこのgemの内部構造を把握してみることにしてみました。 このエントリではgraphql-ruby v1.8.1のコードを元に、graphql-rubyがGraphQLのクエリを受け取って結果を返すまでの以下の各段階がどこでどのように処理されているのか調べていきたいと思います。 クエリをパースする クエリを
この記事はBASE Advent Calendar 2022の3日目の記事です。 どうもこんにちは、ShopFrontチームの青木です。 主にショップデザイン関連機能の開発を担当しています。 今回は、チームのEMをしていた頃に、メンバーのGitHubやKibelaの活動など一箇所でまとめて見れるWebアプリを作成した話になります。 作成したWebアプリについて 自分のページのスクリーンショット 構成 ローカル環境で利用することを想定したもの 環境変数に各種PAT等設定をし、Asana API, GitHub GraphQL API, Slack APIを利用しています フレームワークにはNext.js, Bootstrap5を選定しました 主な機能 メンバーごとに、期間を指定して、以下のようなことができます。 Asanaのアサイン中のTask、GitHubの活動、Kibelaの活動、Uni
TypeScriptなGraphQLサーバをGoにリプレースした 3-shake Advent Calendar 2022の11日目です。 現在携わっているプロダクトではGraphQLを利用してフロント/バックエンドの通信を行っています。 7月に入社した当初はTypeScriptで開発が進んでおり、ある程度の機能が出揃っていましたが、チーム編成が変わったことによりGoが得意なメンバーがバックエンドを担当することになりました。 そこで既存のGraphQLサーバをGoにリプレースしたのでまとめます。 これまで 既存のGraphQLサーバはTypeScriptをベースに構成されており、以下のようなパッケージを採用していました。 NestJS Prisma NestJSの拡張機能でGraphQLを取り扱い、Prismaで定義したスキーマを利用して永続化を行っていました。 これから 技術選定 Goへ
A highly customisable and versatile GraphQL client.
はじめに @june29 と申します。2021年5月からminne事業部のシニアエンジニアリングリードを担当しています。 「ペパボの採用目的2021」というムーブメントに乗っかって、この記事ではminne事業部の様子を紹介します。Webアプリケーションやモバイルアプリケーションの開発に携わるソフトウェアエンジニアが主な想定読者です。ペパボやminne事業部でのお仕事がどんなものか、少しでも興味を持ってもらえたらうれしいです。 minneの事業と組織 minne(ミンネ)は、ハンドメイド作品を「買いたい人」と「売りたい人」をつなぐ国内最大のハンドメイドマーケットです。iOSアプリ、Androidアプリ、Webブラウザからご利用いただけます。 すでに多くのみなさんにご利用いただいている状況ですが、今後も老若男女あらゆる立場の人にもっともっと楽しんでいただけるよう、ライフスタイル領域全般の素敵な
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く