--- title: ブログのバックエンドを作り直した&CLI版フロントエンドを作った tags: [] categories: ["Dev", "Blog", "CategoLJ2"] date: 2014-03-02T06:38:17Z updated: 2014-03-02T06:38:17Z --- 前回blogのフロントエンドを作り直して、Single Page Applicationにしたが、今回はフロントエンドをそのままにバックエンドを[完全に作り直した](https://github.com/making/categolj2-backend)。全てREST APIで提供。Richな管理画面付き。 ![image](https://raw.github.com/making/categolj2-backend/master/screenshots/ss-entries.png) ちなみにこの管理画面は「はじめてのBootstrap」の第5章で説明されているやつです。 扱えるリソースは以下 * 記事(Entry) * リンク(Link) * ユーザー(User) * アップロードファイル(File) またOAuth2に対応してリソースアクセスに対する認可制御を行っている。ユーザー名・パスワードからアクセストークンに交換する方式を採用した(Resource Owner Password Credentials)。 HTTP Sessionを使わないステートレスなアーキテクチャになった。 BlogのバックエンドがThin Serverになり、REST API + OAuth2という標準的なプロトコルでやり取りできることにより、容易にクライアントを作ることが出来る。 一例として、[Go言語でCLIフロントエンドをつくった](https://github.com/making/categolj2-cli)。Web上の管理画面のUIとは全く異なり、記事ファイルのダウンロード/アップロードができて、ローカルで直接ファイルを編集する形になる。FTPみたいな感じ。Markdownエディタと組み合わせて開発すると強力。(この記事も[mou](http://mouapp.com/)で書いている) $ catego post hoge.md で記事を新規作成できる。いい感じ。 Thin Server Architectureにすることで、UIの可能性は無限大になる。クライアントアプリの種類によって適切なUIを考えたいところ。次はiOSかな〜。 今のアーキテクチャは↓な感じ。 ![image](https://qiita-image-store.s3.amazonaws.com/0/1852/5ac2909e-5d28-a861-6c39-1548af68e806.png)