9日目: GraphQLスキーマ再設計, gin導入。
設計変更
前回、一応はGraphQLとしてAPIの機能を作ったけど、開発中に清田に設計ミスに気付いたので修正する。
結論としてはエンドポイントを/adminと/viewerの2つに分ける。 実際、ブログサービスを行うなら、管理者(admin)と一般の閲覧者(viewer)が存在する。 adminの方はアクセス制限をつける。一方で、viewerは同然ながらつけない。
また、同じ記事(Article)の値であってもadminでは非公開記事も取得できるようにしたい。
というわけで再設計する。前回まではGraphQLエンドポイントは1つだけであったが、今回は前途の通り/admin, /viewerの2つ作る。裏側のプログラムは共通項は多い物のエンドポイントは別にする。
gin導入
GraphQLはgengqlで実現するけど、HTTP Webサーバはginを導入する。
上記の通り、adminは認証機構とかをつける。その時にこういうウェブフレームワークがあったほうが手っ取り早いと考えたため。
実装
というわけで今回のプルリク。まだ内容や認証機能はつけてない。
以下、広告
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る impress top gearシリーズ
- 作者:Sau Sheong Chang,武舎 広幸,阿部 和也,上西 昌弘
- 発売日: 2017/03/17
- メディア: Kindle版
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- 作者:Alan A.A. Donovan,Brian W. Kernighan
- 発売日: 2016/06/20
- メディア: 単行本(ソフトカバー)
- 作者:Katherine Cox-Buday
- 発売日: 2018/10/26
- メディア: 単行本(ソフトカバー)
初めてのGraphQL ―Webサービスを作って学ぶ新世代API
- 作者:Eve Porcello,Alex Banks
- 発売日: 2019/11/13
- メディア: 単行本(ソフトカバー)
ファイナルファンタジーVII リメイク アルティマニア (SE-MOOK)
- 発売日: 2020/04/28
- メディア: ムック