設計 - 1m38/play-ItemDB GitHub Wiki
仕様
- RESTfulなAPIアプリケーション
- 商品画像、商品タイトル(-100文字)、説明文(-500文字)、価格
- これらの情報を持つ商品データの登録、検索、削除
- レスポンスはJSONで、内容は自由
URI設計
APIs
- HTTPメソッド: GET, POST, DELETEのみ使う
GET /api/items
- 商品一覧をjsonで
- 内容: 画像, title, 価格
- できれば多数の商品が登録された場合を考えて、複数ページに分けられるように
- URIイメージ: /api/items?offset=xx
GET /api/items/:id
GET /api/search?query
- 商品検索
- query:
- keyword = フリーワード(タイトルと説明文の両方から検索)
- title = タイトル+... (とりあえずAND検索だけ実装)
- description = 説明文内の単語+単語+...
- priceupper = 価格上限
- pricelower = 価格下限
- レスポンス: GET /api/items と同じ形式で
- レスポンスでの商品の並び順: タイトル一致数>説明文一致数>価格が安い順 でソート
POST /api/items/:id
- 商品情報の登録/変更
- validate:
- タイトル・説明文の文字数が範囲内か
- タイトルが入力されているか
- 価格が未入力or数値であるか(文字などは受け付けない)
- 入力内容をjsonで投げて登録させる
- 画像はどう送るのがいい?
- base64エンコード、byte[] などに変換してJSONに含める
- MultipartEntityなど、JSONと画像を同時に送れる形式がある?
DELETE /api/items/:id
Views
/items
- 商品一覧(リンク: items:id, /items/new)
- できれば多数の商品が登録された場合を考えて、複数ページに分けられるように
/items/:id
- 商品idについて詳細(リンク: items:id/delete, items:id/modify)
/items/:id/modify
/items/:id/delete