Amazon Aurora バージョンアップについて、改めて理解する ~バージョンアップ手法と文字コードへの影響~

こんにちは。菅野です。 最近はスマホアプリ全盛期ですね。誰しもが毎日たくさんのアプリを使っていると思います。 アプリでしかサービスを展開していないものもたくさんあったりします。 そのアプリを開発するときには、バックエンド側はFirebaseのようなmBaaSを利用するのが一番手軽だと思います。 ただ、mBaaSが用意するデータベースの中にはちょっと特殊なものもありますよね。別のサービスに乗り換えたくなったときとかに困るのでは?と思ったりもします。 あと、DBはRDBであることが要件の場合も少し悩ましいです。 そこで、mBaaSに頼らずに手軽にアプリのデータ置き場を作成できるか試してみるためにPrismaを使ってGraphQLのバックエンドを作成してみたので紹介します。 Prismaとは www.prisma.io Prismaとはnode.jsのORMです。特徴はGraphQLとの親和性の
しんのきです。 自社サービスで Apollo Client の fetchMore を使ったページネーションを実装する際、出たばかりの TypedDocumentNode を思い出し、これを使えばもっとシンプルに型定義できそうだと思って調査してみました。 結果としては大きなハマりどころもなく期待通り動いてくれました。 (ちなみにドキュメントにもまだ反映されていませんが、 fetchMore と updateQueries を使ったページネーションは Apollo Client v3 で deprecated になっています。これはまた別のお話。) TypedDocumentNode とは TypedDocumentNode は graphql-codegen など GraphQL 関連のツール群を作っている The Guild が 2020 年 7 月にリリースした、 GraphQL ライ
GraphQLのSchemaから静的なドキュメンテーションページを生成するツールとして、graphdocというものがあります。 github.com GraphQL Schemaを渡すと、こんな感じのHTMLを生成してくれます。 これはGraphQL公式のサンプルにもあるStar Wars APIの例。 https://2fd.github.io/graphdoc/star-wars/ このドキュメンテーションを 複数の*.gqlファイルからなるSchemaから生成するために少し小細工が必要だったので紹介します。 GraphQL Schema Language 今回はGraphQL Schema Languageを.gqlという拡張子のファイル(便宜的に以降 gqlファイル と呼びます)で管理します。 TypeScriptやJavaScriptファイル中でテンプレートリテラルとして管理する
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
Integrating GraphQL Code Generator in your frontend applications In this article we’ll try to explain and demonstrate common patterns for frontend development with GraphQL and GraphQL Code Generator. Most patterns are general and can be applied to most popular frontend frameworks (React, Angular, Vue, Stencil), and to popular GraphQL client libraries (Apollo / urql), due to extended support of Gra
GraphiQL.app A light, Electron-based wrapper around GraphiQL. Provides a tabbed interface for editing and testing GraphQL queries/mutations with GraphiQL. macOS installation If you have Homebrew installed on macOS: Alternately, download the binary from the Releases tab. Linux installation The graphiql-app uses the AppImage format for its Linux version. You download it from the Electron app directo
LogRocket’s Galileo AI watches every session, surfacing impactful user struggle and key behavior patterns. Without a doubt, one of the best features of GraphQL is its awesome type system. Together with tools like the GraphQL Code Generator and typed Javascript subsets like TypeScript or Flow, you can generate fully typed data fetching code within seconds. I cannot think back to the time where I ha
こんにちは、サーバーサイドエンジニアの竹若です。今回GraphQLにおけるエラーハンドリングを調査、Ruby on Railsとgraphql-rubyを使って実装する機会があったので、そこで得られた知見を共有させていただきたいと思います。(なお今回の実装はプロダクション環境には出ていません) GraphQLの仕様とプラクティス それではまず初めに、GraphQLが仕様に定めているレスポンスの返し方を見ていきましょう。 レスポンスのフォーマットに関するプラクティス GraphQLのプラクティスの1つに、レスポンスのhttp statusを200で統一し、レスポンスのerrorsキーにエラーの詳細な情報を持たせるというものがあります。 なぜならGraphQLではリクエストに複数のクエリを含めることができるからです。 https://www.graph.cool/docs/faq/api-ee
この記事は GraphQL Advent Calendar 2020 6日目の記事です。 前回の記事は @fossamagna さんの AppSyncのGraphQL APIを@apollo/clientで呼び出す でした。 この記事では以下の記事で紹介されているGraphQLのエラーハンドリングの手法についての紹介と、それを利用するクライアントサイドのメリットについての考察をしていきます。 sachee.medium.com アプリケーションで生じる様々なエラーと、GraphQLの一般的なハンドリング GraphQLはリクエストに対してエラーが発生した場合、一般的にレスポンス中のerrorsというキーの中にそのエラーに関する情報を詰め込んだレスポンスを返すというプラクティスがあります。 "errors": [ { "message": "....", "locations": [ ...
Mutations in Apollo Client Modify data with the useMutation hook \n {\n e.preventDefault();\n addTodo({ variables: { type: input.value } });\n input.value = '';\n }}\n >\n {\n input = node;\n }}\n />\n Add Todo\n \n \n );\n}"],"hast":[0,{"type":[0,"root"],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"pre"],"properties":[0,{"class":[1,[[0,"shiki"],[0,"shiki-themes"],[0,"github-light-default
scalar型を新しく定義するためにはscalarキーワードを使います。例えば、Date型を新しく定義するには次のようにします。 scalar Date スキーマではこれだけですが、実際に使う際はGraphQL処理系に対してさらにシリアライズとデシリアライズを定義することになります。 GraphQL組み込みのscalar型は先にあげたものだけなので、例えばバイナリ、日付と時刻、HTML/XML、BigIntなどを必要に応じて追加することになるでしょう。ただしその場合、サーバーサイドとクライアントサイドでシリアライズ・デシリアライズの実装を一致させる必要があります。 Enum enum(イナム)はscalar型の一種で、特定の値のみを持つ型です。例えば、組み込みscalar型であるBooleanをenumで宣言すると次のようになるでしょう。 enum Boolean { true false
今日では多くのWebサービスがRESTアーキテクチャスタイルで実装されています。RESTは2000年にフィールディングの論文で提唱された後に爆発的に普及し洗練されてきました。一方で、本書で紹介するGraphQLは2015年にFacebookによって公開されたRESTとは異なるアプローチのアーキテクチャです。GraphQLの最大の特徴はクエリ言語を用いてデータを操作する点です。クエリ言語の表現力の高さによりクライアントは本当に必要なリクエストを送ることができます。本書ではGraphQLの概要とGraphQLを用いたWebサービスの開発方法を実装例に沿って紹介します。認証やファイルアップロードといった実践的なトピックまで踏み込んだGraphQLの実用的な入門書です。 関連ファイル サンプルコード 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下の
最近、GraphQL APIをインターネット上に晒す上で何を考慮したらいいのだろうか、的なことを考える機会が多く、空いた時間でチマチマと素振りしています。 今日はGraphQLのクライアント - サーバー間に挟むリバプロ的な機能について書いてみようと思います。 やりたいこと 1. 想定しないクエリの排除 例えばECやメディアサイトのような、未ログインでも情報の閲覧が可能なサービスのWeb API層をGrahpQLで実装したとします。ECにしろメディアにしろ、詳細ページでの回遊率を上げるため、詳細同士を関連付けるようなスキーマ設計となるのは自然なことでしょう。 GrahpQLのスキーマ定義で書くと、下記のようなイメージです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く