サーバサイドKotlinでGraphQLをやってみよう - Kotlin Fest 2019 - / Server side Kotlin + GraphQL
安全なGraphQL API開発が出来るって本当? FastAPI+GraphQL+テストで安全なAPI開発PythonテストGraphQL型定義FastAPI はじめに この記事はZOZOテクノロジーズ アドベントカレンダー#2 16日目の記事です! TL;DR REST上でGraphQLを使用するメリットを説明 ORMを使用してPostgresを操作 GraphQLで用いられるスキーマ、ミューテーション、クエリについて説明 Grapheneを使用してGraphQLをFastAPI上で使えるようにする Grapheneとpytestを使用してGraphQL APIをテストする なぜREST上でGraphQLを使用するか RESTは、WebAPIを構築するためのデファクトスタンダードです。CRUD操作ごとに複数のエンドポイント(GET、POST、PUT、DELETE)を設計します。これらの
とよももです! お仕事でHeadlessCMSのstrapiを触る機会がありました。情報が少なくて苦労したので、誰かの助けになる様にまとめたいと思います。 ちなみにvue + strapiでアプリを作ってみました。axiosでgraphqlを使いたい方など、参考に見てみてください。 ・レポジトリ Strapiでの認証方法記事も書きました。 ・Strapiに認証機能を追加する(特定のユーザしかAPIが呼べない仕様に変更する) 事前知識 CMSとは CMSとは、Contents Management Systemの略です。CSSやHTMLなどのWEBサイトを構築するための専門的な知識を持っていなくてもWEBサイトやコンテンツを構築し、管理ができるシステムです。 最も代表的なCMSは「WordPress」。「はてなブログ」や「Qiita」、「Note」もCMSです。 CMSを使うことで、簡単にW
GraphQL Ruby 公式ページ RailsでGraphQLを扱う場合↑のgemを使ってAPIを実装していきます。 graphiql-rails 合わせて graphiql-rails gemを入れておくとブラウザ上で実装したGraphQLの 確認ができるIDEが使えるようになります :sparkles: ※ graphql-rubyのinstall時に graphiql-rails のgemをGemfileに追加してくれます イメージ画像 環境構築 $ rails generate graphql:install create app/graphql/types create app/graphql/types/.keep create app/graphql/app_schema.rb create app/graphql/types/base_object.rb create a
はじめに 今回の記事ではデータベースを使わずに、1時間でFastAPIでGraphQL APIを開発する方法を解説する。 対象とする読者 FastAPIを使っているひと これからPythonでGraphQL APIを開発したいひと タイトルを見て気になったひと 開発環境 Windows 11 Python 3.10.2 FastAPI Strawberry 0.196.2 Visual Studio Code 1.80 Strawberryとは Strawberryとは、Pythonで開発されたGraphQL APIのサーバを開発を補助するためのライブラリである。Pythonの型ヒントを使ってGraphQLのスキーマを定義し、APIの開発を助けるためのツールを提供している。 公式サイトによると、FastAPIでGraphQL APIを開発するうえでStrawberryを使うことを推奨してい
前回は、Apollo GraphQL における Mutation(トランザクション処理)の前提知識としてキャッシュ機構について説明しました。(記事はこちら) 今回は React Apollo(v2) における Mutation 後のキャッシュ更新処理について整理しつつ、どのパターンをどのユースケースで採用すべきかについてまとめてみました。 Mutation 後のキャッシュ更新処理 Mutation の返り値を使う(Optimistic UI/update) Refetch Subscription どう使いわけるか Mutation 後のキャッシュ更新処理 Mutation後のキャッシュ更新処理は大きく分けて3種類あります。それぞれ順番に紹介していきます。 Mutation の返り値を使う(Optimistic UI/update) まず、一番ベーシックな方法として、Mutation の返
Strawberry is a developer friendly GraphQL library for Python, designed for modern development. Get Started import strawberry @strawberry.type class Song: id: strawberry.ID title: str @strawberry.type class Query: @strawberry.field def song(self, id: strawberry.ID) -> Song: return Song(id=id, title="Strawberry Fields Forever")
GraphQL で開発していくと、GraphQL スキーマが膨らんでいきます。また GraphQL スキーマは分割できますが、これを進めるとどのフィールドがどこと関係しているのか、追うのが難しくなってきます。 そこで GraphQL スキーマを図にして追ってみようと思うわけです。図に吐き出してくれるツールとしては Graphqlviz があり、npm でインストールしてターミナルでスキーマを指定してコマンド叩けば簡単に図にできます。 github.com ただし複雑なスキーマをこれで単純に描画すると凄まじい事になり、例えば GitHub GraphQL API の パブリックスキーマ に対し生成を試みると、 これは一部抜粋ですが、これだけでもまさに混雑的リレーションの小宇宙という感じで追うのが不可能です。ちなみに単純に GitHub GraphQL API の パブリックスキーマを npx
元号ももう令和に代わり粛々とGoの勉強を続けているのですが、今回はGOとGraphQLを使って CRUDできるAPIを作ってみました。 gin-gorm-gqlgen-sample そもそもGOに慣れていなかったり各種ライブラリの情報が少なかったりで結構時間かかりましたが、 なんとかそれらしきものができたのでリポジトリを共有しておきます。 前回の記事でも、最初にながれを説明して詰まったところを最後にまとめて終わりという形だったので 今回も同じ形でいければななんて思っています。 サンプルを作るにあたり色々と情報を漁ったのですがGormとgqlgenを組み合わせの情報が少なく苦労したので そこらへんの情報ものせていければ。 使用技術 今回GraphQLサーバ構築に使った大きな部分の技術をまとめると Docker Dep (パッケージ管理) Gin (Webフレームーク) Gorm (ORM)
Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうなので試したみたRubyRailsGraphQLgraphql-ruby VISITS Technologiesでマネージャー兼バックエンドエンジニアをしている@ham0215です。 今年のアドベントカレンダー3つ目の記事です。 直前までどのような内容の記事を書こうか迷っていたのですが、直前で @woods0918 さんがGraphQLの記事を投稿したので、私も流れに乗ってGraphQLの記事にしてみました。 Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうだなと思ったので、実際に触ってみて使い心地を確かめてみました。 GraphQLのUnion typesとは GraphQLにはUnion typesというタイプがあり
これは元記事(GraphQL@Yelp Schema Design GuidelinesのGraphQL Styleguide)を著者の一人 Mark Larahさんから許可をいただき日本語訳したものです。 🎨 スキーマ設計 GraphQLスキーマは、Yelpのエンジニアリング全体に対してグローバルです。最終的にはユーザー向けビジネスデータ全体をGraphQLでモデル化出来るようにしたいと考えています。このページには、クリーンで使いやすくスケーラブルなスキーマを提供するために、どのように考るかについてのガイダンスが含まれています。 先に進む前に、スキーマがどのように機能するかを理解するために、そのテーマに関する公式ドキュメントをざっと読むことを強くお勧めします。 Contents 型の種類 トップレベルのクエリを最小に保つ 型の命名は具体的にする フィールドに名前空間をつけない View
はじめに これは Ubie Advent Calendar 2019 - Qiita の7日目の記事です。 6日目は かみな/Kaito Minatoya@Ubie (@kamina_zzz) | Twitter による 地球上の Kubernetes ユーザーは絶対使うべきツールたちを紹介するよ - Qiita でした。 想定読者 Spring + Kotlin + GraphQLを使っていて、Ktorに移行したくなっちゃった人 (需要🤔) 本題 UbieでAdvent CalendarをKtor縛りで書くぞ!となりました。じゃあ自分は何を書こうかなーって考えてたらGraphQLに決まってるじゃん?と振られたので、UbieではKtor+GraphQLは使ってないのですが、もしSpringのアプリケーションである https://github.com/ubie-inc/kotlin-gr
GraphQLにはページネーションを表現する方法としてCursor Connectionsという仕様があります。 この機能を使うことでカーソルベースのページネーションを簡単に実装することができます。 仕様の詳細はGraphQLやRelayのページをご覧ください。 https://graphql.org/learn/pagination/ https://relay.dev/graphql/connections.htm この機能はとても強力な機能なのですが、私はGraphQLを使い始めたころedgeやnodeの役割を正しく理解できておらず誤った使い方をしていました。 改めて公式ドキュメントを読んだり、その他の様々な情報に触れることで正しいと思われる使い方に気づいたので記事として残しておこうと思います。 ※サンプルコードはgraphql-rubyを使ったRubyのコードで記載していますが内容
この記事はGLOBIS Advent Calendar 2020の19日目の記事です。 新規サービスの開発にバックエンドはRuby on Rails + GraphQL、クライアントサイドはReactを使っています。バックエンド側ではGraphQL Rubyをライブラリとして使用しています。実際にGraphQL Rubyを開発に盛り込んでしてきたことを書いていきます。 なぜ GraphQL + React を採用したのか 我々が現在開発中の新規サービスではサーバーサイドに GraphQL、フロントエンドに React.js を採用しました。 グロービスでサービス側はフロントエンドに React.js を主に採用しており知見・リソース共にサービス立ち上げの開発速度を担保するために十分でした。サーバーサイドについては Ruby on Rails を利用しており、APIについては Swagger
GraphQL/REST における Authorization, Authentication について。 https://www.prisma.io/tutorials/graphql-rest-authentication-authorization-basics-ct20/ REST API Authentication (認証) Authentication には JWT を利用する。JWT を生成するコードは、以下のようになる。読み込み権限を与えることを示す "read-post" を claim として保持させ、暗号化には HS256 を利用し、この暗号化時のシークレットキーとして "secret" という文字列を利用する。 code:js import * as jwt from "jsonwebtoken"; const token = jwt.sign({ claims:
1 はじめに CX事業本部の平内(SIN)です。 AWS AppSync(以下、AppSync)は、AWS上のGraphQLのフルマネージドサービスです。 Webや、iSO,Androidから利用する場合、Amplifyで簡単に導入できますが、今回は、Lambda(TypeScript)からアクセスする要領を確かめてみました。 2 AppSync AppSyncは、ここで、以下のような簡単なスキーマのAPIを例とします。 type Mutation { create(message: String!): MyData } type MyData { id: String! message: String } type Query { getMyAppSync(id: String!): MyData } クエリでデータの追加を確認してみます。 データソースは、DynamoDB(my_app
$ bin/rails g graphql:install Running via Spring preloader in process 50049 create app/graphql/types create app/graphql/types/.keep create app/graphql/rails_graphql_api_schema.rb create app/graphql/types/base_object.rb create app/graphql/types/base_argument.rb create app/graphql/types/base_field.rb create app/graphql/types/base_enum.rb create app/graphql/types/base_input_object.rb create app/graph
こんにちは、エンジニアの尾島(@daikiojm)です。 最近は HiCustomer のオフィスがある五反田周辺の飲食店の入れ替わりが激しく、開店/閉店に一喜一憂しております。 五反田、目黒周辺でおすすめのお店があったら教えてください。 React + Vite で新規プロダクトを開発している話で紹介した新プロダクトの開発では、GraphQL を採用しています。 今回はこの記事では紹介しきれなかった GraphQL Code Generator と React Query の活用について紹介します。 この記事で紹介する内容は次のとおりです。 GraphQL Code Generator + React Query の組み合わせを採用した理由 GraphQL Code Generator を使った型/React Query のクライントコード生成 Custom Hooks の実装例 Gra
[AWS AppSync] エッジデバイスのデータを AWS IoT経由で取得してGraphQLを更新してみました。 1 はじめに CX事業本部の平内(SIN)です。 AWS AppSync(以下、AppSync)は、GraphQLを利用するためのマネージド型サービスです。 今回は、このGraphQLへのMutationをAWS IoT経由で取得したデータで行うものを試してみました。 最初に動作している様子です。 デバイスからのデータをiOSで表示するだけなら、MQTTのPublishとSubscribeだけで充分だと思うのですが、ここは、今後の拡張を視野に入れて、敢えてGraphQLを挟むという事にさせて下さい。 2 構成 構成は、以下のとおりです。 エッジデバイスのデータは、MQTTでPublishされています。AWS IoTでは、ルールにより、到着したデータをすべてLambdaに送っ
This post is a preview of Production Ready GraphQL, a book I recently released on building GraphQL servers that goes into great detail on building GraphQL servers at scale: https://book.productionreadygraphql.com Measuring API performance is very important to get right, and GraphQL doesn’t make it any less important. In fact, some of you are maybe using GraphQL because of performance concerns and
※ 本連載では、様々な AWS サービスをグラフィックレコーディングで紹介する awsgeek.com を、日本語に翻訳し、図の解説をしていきます。awsgeek.com は Amazon Web Services, Inc. プリンシパル・テクニカル・エバンジェリスト、ジェリー・ハーグローブが運営しているサイトです。 これまでのグラレコ解説はこちら » GraphQL は、サーバーからのデータに対して、クライアントによるフェッチ、変更、サブスクライブを可能にするデータ言語です。GraphQL クエリでは、サーバーから返されたデータをどのように構造化するかをクライアントが指定します。これによって、クライアントは必要なデータのみを必要なフォーマットでクエリできます。 Web API として有名な RESTful (REST) と比較した場合、主に以下の違いがあります。
やったこと ほぼTypeScriptだけでバックエンドもフロントエンドも作ってみた できたもの 技術スタック Backend NestJS TypeORM GraphQL (Code first) / Apollo Frontend Next.js / React GraphQL Code Generator / Apollo Client emotion / Semantic UI Other yarn workspace ESLint / Prettier / husky Docker / Docker Compose Vercel GCP (CloudSQL / Cloud Run / Cloud Build) Backend NestJS TypeScriptでスケーラブルなサーバーサイドアプリを構築するためのNode.jsフレームワークです 型安全なので何か誤った記述があれば起動
Front-End Web & Mobile Introducing Direct Lambda Resolvers: AWS AppSync GraphQL APIs without VTL This article was written by Ed Lima, Sr. Product Manager, AWS September 14, 2021: Amazon Elasticsearch Service has been renamed to Amazon OpenSearch Service. See details. AWS AppSync is a managed serverless GraphQL service that simplifies application development by letting you create a flexible API to
2021年に3サービスをリリースしたSHEにラブグラフCTO横江が質問し、スミからスミまで聞き出す「【CTO対談】ラブグラフCTOが訊く!『SHEの爆速開発の裏側』」。ここでSHE株式会CTOの村下氏、株式会社ラブグラフCTOの横江氏が登壇。最後に過去の反省と、今後のSHEの爆速開発に向けてやっていこうとしていることについて話します。 消耗してしまったメンバーが増えた時期があった 横江亮佑氏(以下、横江):組織もなにか工夫したところはあるんですか? 村下瑛氏(以下、村下):当時は5人のチームだったので、組織みたいな要素はほぼゼロというか。 横江:じゃあ、この開発を進めていく上でハレーションとかも特になかったんですか? 村下:でも、それでいうとやはりあって。 横江:この人数であったんですね。 村下:5人で小規模なチームではあったんですが、僕が開発にフルコミットみたいな感じではなくなりつつある
RESTとは 以下の記事等でもまとめていますが、REpresentational State Transferの略で、分散型システムにおける複数のソフトウェアを連携させるのに適した設計原則の集合、考え方のことです。 ※詳細は以下記事を参照ください。 RESTful APIとは何なのか リソース指向アーキテクチャ(ROA)とは何なのか Web APIとは何なのか Web APIのインターフェースとしては割と一般的になりつつありますが、本記事ではそんなRESTの課題と(それに取って代わるわけではないですが)GraphQLについて書きたいと思います。 GraphQLとは GraphQLとはFacebookが2015年に公開したAPIの規格です(APIのための問い合わせ言語とも言われることがあります)。RESTはAPIの設計原則の集合、考え方なのに対して、GraphQLは言語(クエリ言語、スキーマ
自己紹介 こんにちは,ZOZOテクノロジーズの内定者さっとです。 最近FastAPIをよく利用していますが、今回紹介するGraphQLやWebSocketがサポートされており、 便利すぎでは?と感じる今日この頃です。 ※本記事はZOZOテクノロジーズ#5の17日目です. 昨日は@e_tyuboさんが「Git for Windowsでautocrlfの設定を間違えちゃった時の対応」という記事を出しました. 他にもZOZOテクノロジーズでは5つのアドベントカレンダーを毎日更新しています! ZOZOテクノロジーズ#1 ZOZOテクノロジーズ#2 ZOZOテクノロジーズ#3 ZOZOテクノロジーズ#4 概要 FastAPIを使ってGraphQLをさくっと構築する方法を紹介したいと思います。 以下、本記事の構成です。 FastAPI?GraphQLとは? FastAPI×GraphQLで楽々ハローワ
top > 開発ブログ > AWS > AWS AppSyncのGraphQL Subscriptionsのクライアントを作って裏側の仕組みを学ぶ こんにちは、ナカエです。 マネージドなGraphQLサーバを手軽に作れるAWS AppSyncがじわじわと人気を集めてきているようですね。 AppSync APIのクライアントとしては公式のSDKたるAmplifyを利用すると楽ちんです。 が、しかし今回はAppSyncのGraphQL Subscriptions実装の仕組みを確認するため、Node.jsとWebSocketクライアントを使ってリアルタイム通信のクライアントを実装しました。 GraphQLのスキーマとAppSync API の認証モード 本記事のサンプルはトピックごとにメッセージを投稿/受信する簡易なチャットルームアプリを想定しています。 Mutationはメッセージの投稿に、S
Postmanライクに使える!! GraphQL用クライアント「Altair GraphQL Client」 Altair GraphQL Client https://altair.sirmuel.design/ Altair GraphQL Clientの特徴 「Altair GraphQL Client」は、アプリ・Web・ブラウザ拡張と、すべてのプラットフォームに対応したGraphQL用クライアントです。 https://github.com/imolorhe/altair なお、こちらGitHubで1.9Kを超す人気オープンソースでもあります。 Altair GraphQL Clientの操作方法 Altair GraphQL Clientの特徴の一つが、このプラットフォームの多様さ。今回はWeb版をチョイス。 こちらがクライアント画面。シンプルなPostmanといったUIで、非
この記事はClassi developers Advent Calendar 2021の6日目の記事です。 この記事では、Next.jsをベースに、Prisma・Apollo GraphQL・GraphQL Nexusを組み合わせて簡易的なTODOアプリを実装してみたのでその手順をまとめます。 これらの組み合わせにより、バックエンドもフロントエンドもすべてTypeScriptで記述することができます。 全体構成 主に使用するフレームワーク・ライブラリ Next.js Reactフレームワーク Prisma Node.jsとTypeScriptのためのORM クエリの結果が型付けされるため、開発体験を向上させることができる特徴がある 本書ではPostgreSQLと接続してデータの取得・操作を行う Apollo GraphQL GraphQLサーバ(Apollo Server)およびGraph
In this series, we’re going to walk you through a no-frills guide to the development of GraphQL applications, talking about not only its advantages but also its caveats and pitfalls (and, of course, the ways to deal with them). GraphQL in a nutshell According to the specification, GraphQL is a query language and runtime (or execution engine). Query language, by definition, describes how to communi
背景 最近PoCをなるべく早く作る方法を考えています。 極端な話、リリース時には作り直したとしても、素早くPoCできた方が良いのではないかと思っています。 PoCでざくざく作る時にどうしてもAPIを用意するのが手間に感じてしまいます。 そんな時にHasuraを教えてもらいました。 ロゴアイコンがかわいい。 ※GraphQL自体触るのが初めてなので、他のGraphQL環境と比べてどうかは分からないです。 Hasuraとは ざっくり言うと、Postgresをデータベースとして、GraphQLサーバを簡単に建てられるものです。 ほんとに数分で環境作れてしまって驚きました。 PoC開発で辛いことの一つにAPI開発があります。 システムの作り方として、ちゃんと境界を分離して作ることはメンテナビリティを高める方法としてとても有用です。ただし、PoCの様に素早く作りたい時には、CRUDのAPIを量産する
はじめに この記事では「メリット」のみに言及する GraphQLの一番の強みは「型」 型とは よく言われるGraphQLのメリット 本当の強みは 「型」とは なぜコミュニケーションコストが減少するか まとめ スターウォーズ はじめに この記事は GraphQL Advent Calendar 2019 - Qiita の2日目の記事です。 昨日はebikenさんの https://blog.ebiken.dev/blog/operating-graphql-server-with-gqlgen/ でした。 2年前、「新しくクライアント向けのAPIサーバーを作る」ことをしていた。 このとき、「REST」と「GraphQL」どちらを採用するか検討し、結局「REST」を採用したのだが、「RESTで保守性の高いAPIサーバーを作るぞ!」と思った時に、「なるほど、こういう点はGraphQLの方が優れ
Rob Richard and Liliana Matos are front-end engineers at 1stDibs.com. They have been working with the GraphQL Working Group as champions of the @defer and @stream directives. The @defer and @stream directives have been a much anticipated set of features ever since Lee Byron first talked about it at GraphQL Europe 2016. For most of 2020, we have been working with the GraphQL Working Group to standa
Overview: From schema-first to code-firstThis article gives an overview of the current state of the GraphQL server development space. Here's a quick outline of what is covered: What does "schema-first" mean in this article?The evolution of GraphQL server developmentAnalyzing the problems of SDL-first developmentConclusion: SDL-first could potentially work, but requires a myriad of toolsCode-first:
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く