よこやまの日記・ブログを自作する編

車輪の再開発でも自分専用ブログをつくるんや!

19日目: 勢いでN+1問題対応入れたけど今は不要だった

初めてのGraphQL ―Webサービスを作って学ぶ新世代API作者:Eve Porcello,Alex Banks発売日: 2019/11/13メディア: 単行本(ソフトカバー) GraphQLの怖いところN+1 前回は一つのクエリが重くなることに対する負荷対策を入れた。(実際問題としてできているかは…

18日目:重いGraphQLのクエリを制限する機構を導入

初めてのGraphQL ―Webサービスを作って学ぶ新世代API作者:Eve Porcello,Alex Banks発売日: 2019/11/13メディア: 単行本(ソフトカバー) GraphQLの1クエリは重くできる GraphQL APIってREST APIと違ってクライント側の裁量が大きいAPIである。REST APIはサー…

17日目:日付順でソート

開発で期間が空くとこのブログが自分が何をやってきたかが分かる良い機会になる。 プルリクをマージしてから大分期間が空いたけど、ここに書いておくと開発の間に時間が経っても振り返りやすくなるので書いておく。 今まで記事の順番はテキトーでMySQLのイン…

16日目: ページネーションをフロント側にも実装

前回はGraphQL側での改修を行ったので今回はフロントエンドの実装。次のページ・前のページへの遷移を実装した。 というわけで今回のプルリク。 github.com

15日目:前後の記事を取得できるようにGraphQLを拡張する

前後の記事に遷移するために 前回は、既存のGraphQLに対してApollo Clientで記事をざっくり表示する部分を作成しました。続いてページネーションで前後の記事に遷移できるリンクを作ろうとしました。 が、そんなスキーマ定義はしていなかったので改修しまし…

14日目: Apollo GraphQL Client(vue用)で記事の読み込み

GraphQLのクライアントの作成 GraphQLのクライアントをどうしようかと思ったけど、まずはオーソドックスにApollo Clientを利用することにした。そしてこのVue向けであるこちらを導入。 github.com 概ねTypeSciriptにも対応しているようで一安心。 Vueファイ…

13日目: Buefy導入

表示をようやく作る、少しだけ。 前回、AWS LambdaでNuxtをサーバサイドレンダリングで動かすということをやった。で、ついでにLambda上でソレを実現するためのQiita記事も書いた。 qiita.com さて、今回は実際に中身の実装をしていく。 最初、フロントエン…

12日目: Nuxt.jsをLambdaで動かすようにしたい。TypeScriptで。

今日はフロント 前回まではGraphQLでのAPI側を実装してきた。ほとんど機能は無いけど、いったん形だけ作ろうと思い、フロントエンド側を作ってみることにする。 フロントエンドはNuxt.jsでサーバサイドレンダリングをする一方で、インフラはAWS Lambdaという…

11日目: 管理者向けエンドポイントにはBasic認証を

またまた日数経ったけど お仕事が少し落ち着いてきたので続きを作るよ。 前回では/adminにブログ記事を作成・更新するエンドポイントを作成しました。 忘れていたけど、/admin配下にもかかわらず一切認証機構作っていなかったです。いったんブログ記事は自分…

10日目:管理者向けの処理を書く

日数経ったけど。。 前回からかなり日数たったけど、続きです。仕事が忙しいのに加えて、休日はアジサイを撮影したりで。。。 #6月 の #昭和記念公園 に行ってきた。#紫陽花 や #緑の草木 が綺麗でした。在宅勤務で動いてないからか歩いてかなり疲れた。#国…

9日目: GraphQLスキーマ再設計, gin導入。

設計変更 前回、一応はGraphQLとしてAPIの機能を作ったけど、開発中に清田に設計ミスに気付いたので修正する。 結論としてはエンドポイントを/adminと/viewerの2つに分ける。 実際、ブログサービスを行うなら、管理者(admin)と一般の閲覧者(viewer)が存在す…

8日目: GraphQLの中身を仮実装

中身を書く 前回、GraphQLのスキーマ設計を行って、それに伴うGo言語のコード生成まで行った。 その後引っ越しやらなんやらで、時間が空いたけど今日から改めて続きを作る。 新居きた pic.twitter.com/ouEQQew5jF— よこやま (@hiroyky) 2020年6月2日 今回は…

7日目:GraphQLのことはじめ

GraphQL APIはなぜかGraphQLで実装することにしたので導入する。 GraphQLはこちらのライブラリを使って導入を行う。 公式のGet startedはここ。 gqlgen.com 下記コマンドでスケルトンが生成される。はじめの一歩のためのファイル群が生成。(正直言うと不要…

6日目:スキーマ定義を少し変更する

スキーマ定義を少し変更する 前にシンプルなデータベース定義したけど、こんなようなツイートを見かけまして、ちょっとこの3つの項目を追加しようと思った次第。 たしかに、あった方が良い。 status→[下書き、公開、限定公開、ボツ]description→概要(metaタ…

5日目:SQLBoilerの導入でORマッパー・モデル作成

SQLBoilerでモデル作成 前回と前々回でMySQLでのデータベースをローカル開発環境に設置できたので、そろそろコードの実装をする。 SQLBoilerというGO言語で使えるORマッパーでモデルを作成する。 SQLBoilerを使うと実際のMySQL等のテーブル構成を調べてORマ…

4日目:docker-composeでMySQLをたてる

docker-compose まずはGraphQL APIのローカル開発環境を作成するためにMySQLをdocker-composeで設置。 とはいえ、何か調査したとかではなく既存の自作設定ファイルをコピーしてきただけ。 今日は疲れてるので、ここまで。(おい進捗) 知っている人は知ってる…

3日目:データベースの設計を始めてみたけど。。

スキーマ設計 さて、とにもかくにもシステム設計の根幹となるのはやはりデータベース。 ソースコードはリファクタリングできても、データベースの構成だけは簡単に修正できないからね。 さて、まず最小限のテーブルを用意して、今後徐々に追加していく方針。…

2日目:技術選定をする。

技術選定をする。 さて、ブログのシステムを作る上でまず行うべきが技術選定。 使用するプログラミング言語、フレームワークに加えてインフラの先手にも必要。 そこそこ使い慣れてる技術で、ナウい(モダンな)もの、使っていて楽しい物、自分の勉強になる物。…

1日目:独自ブログを作ろうか。

日記をつけようと思った。 技術ブログを情報発信!!みたいなちゃんとしたブログでもなく1日1回程度思ったことを綴るブログがあっても良いなぁと思いました。 多分、このたまたま見つけて読んでるこの本「日記ををつける」が影響してる。 日記をつける (岩…