前回blogのフロントエンドを作り直して、Single Page Applicationにしたが、今回はフロントエンドをそのままにバックエンドを完全に作り直した。全てREST APIで提供。Richな管理画面付き。
ちなみにこの管理画面は「はじめてのBootstrap」の第5章で説明されているやつです。
扱えるリソースは以下
- 記事(Entry)
- リンク(Link)
- ユーザー(User)
- アップロードファイル(File)
またOAuth2に対応してリソースアクセスに対する認可制御を行っている。ユーザー名・パスワードからアクセストークンに交換する方式を採用した(Resource Owner Password Credentials)。
HTTP Sessionを使わないステートレスなアーキテクチャになった。
BlogのバックエンドがThin Serverになり、REST API + OAuth2という標準的なプロトコルでやり取りできることにより、容易にクライアントを作ることが出来る。
一例として、Go言語でCLIフロントエンドをつくった。Web上の管理画面のUIとは全く異なり、記事ファイルのダウンロード/アップロードができて、ローカルで直接ファイルを編集する形になる。FTPみたいな感じ。Markdownエディタと組み合わせて開発すると強力。(この記事もmouで書いている)
$ catego post hoge.md
で記事を新規作成できる。いい感じ。
Thin Server Architectureにすることで、UIの可能性は無限大になる。クライアントアプリの種類によって適切なUIを考えたいところ。次はiOSかな〜。
今のアーキテクチャは↓な感じ。