君は牛を二頭持っている

渋谷あたりのエンジニアのブログ。OSからウェッブなフロントエンドまでとか色々。

Amon2でブログを作成するまで(設計編)

前:
Amon2でブログを作成するまで(環境構築) - 君は牛を二頭持っている
ギッハブ:https://github.com/AKdozum/Amon2_blog

このあたりから,公式のチュートリアルを大いに参考にしてます
http://amon.64p.org/bbs_tutorial.html

DBとか設計する感じです

作りたいもののおさらい

  • ログイン機能があって(面倒なのでTwitter認証にする)
  • 日本語の文字列を投稿できて
  • 後から編集とか削除出来て
  • コメントも付けられる

ブログ的なもの(検索は作らない)

DB

一応今のところこんな感じですが,もしかすると変わるかもしれません

PRAGMA foreign_keys=ON; #https://www.sqlite.org/foreignkeys.html
CREATE TABLE IF NOT EXISTS member (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(255)
);

CREATE TABLE IF NOT EXISTS entry (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
body TEXT not null,
created DATETIME,
FOREIGN KEY(id) REFERENCES member(id)
);

CREATE TABLE IF NOT EXISTS comment (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(255),
body TEXT not null,
created DATETIME,
FOREIGN KEY(id) REFERENCES entry(id)
);

これをsql/sqlite.sqlに保存して

sqlite3 db/development.db

で,開発環境用のDBをセットアップ完了

API設計

backbone.jsとか見てると,最近はPUTとかDELETEとかのHTTPのメソッドで分けるのが良いのかな?とか思うけど,Amon2のソースぱっと見たところ,PUTが対応してるのかどうかよく分からなかったので,POSTとGETで以下のような感じに.

  • 閲覧 GET /entry/[id]
  • 投稿 POST /entry/post
  • 編集 POST /entry/edit/[id]
  • 削除 POST /entry/delete/[id]
  • コメント投稿 POST /comment/post
  • コメント削除 POST /comment/delete/[id]

実装の前に

テストを書かないといけないので,Amon2でのテストのやり方を調べて次に書きます